如何在获取路由中将默认参数传递给laravel控制器

hor*_*rse 0 laravel laravel-4 laravel-routing

我有这样一条路线:

Route::get('category/{id}/{date?}', array('as' => 'category/date', 'uses' => 'Controller@getCategory'));
Run Code Online (Sandbox Code Playgroud)

我想在调用“ /”根路由时使用默认参数运行@getCategory。因此,如果调用了“ /”路由,则getCategory函数应以id = 1和date = 2015-12-18运行。

我应该怎么做?

Jos*_*ber 5

将其注册为单独的路线:

Route::get('/', 'Controller@getCategory')->named('home');
Route::get('category/{id}/{date?}', 'Controller@getCategory')->named('category/date');
Run Code Online (Sandbox Code Playgroud)

然后在您的控制器中,为这些参数设置默认值:

public function getCategory($id = 1, $date = '2015-12-18')
{
    // do your magic...
}
Run Code Online (Sandbox Code Playgroud)

  • 如果想根据路由模式使用不同的默认值,该如何解决? (2认同)

小智 5

使用 Laravel 9.x 为路由设置默认值


Route::get('categories/{id}/{date?}', 'CategoryController@getCategory')
     ->name('category-date')
     ->defaults('date', '2023-02-13');

Run Code Online (Sandbox Code Playgroud)