📜  Laravel (8) - 使用可选参数路由到控制器 - PHP (1)

📅  最后修改于: 2023-12-03 15:17:11.728000             🧑  作者: Mango

Laravel (8) - 使用可选参数路由到控制器 - PHP

在 Laravel 8 中,可以使用可选参数路由到控制器,使得在定义路由时不必显式指定所有参数。这个功能在一些应用场景中非常实用,如可选搜索条件,可选过滤器等等。

如何使用可选参数路由到控制器?

首先,在路由定义中,我们可以在需要传递可选参数的地方加上?,表示该参数是可选的。例如:

Route::get('/search/{keyword?}', '\App\Http\Controllers\SearchController@search');

上面代码中,{keyword?}表示keyword是一个可选的参数,可以在调用时不传递。

在控制器中,我们可以为可选参数指定默认值,使用如下方式:

public function search($keyword = 'default')
{
    // ...
}

控制器中的$keyword参数将会使用在路由定义中指定的默认值,如果在路由中传递了参数,将会自动覆盖默认值。

示例代码
Route::get('/search/{keyword?}', '\App\Http\Controllers\SearchController@search');
public function search($keyword = 'default')
{
    // Do something with $keyword...
}

以上示例中,我们定义了一个/search的路由,该路由有一个可选参数{keyword?},在调用时可以不传递该参数,默认值为default。在控制器中的search方法中,我们使用了$keyword参数,可以自动接收可选参数的值。

总结

使用可选参数路由到控制器是一个非常实用的功能,在一些场景中减少了代码冗余,提升了开发效率。在 Laravel 8 中,我们可以使用上述方式轻松地实现该功能。