📅  最后修改于: 2023-12-03 15:20:54.957000             🧑  作者: Mango
在Laravel中,可选路由参数允许你定义一个路由模式,其中某些部分是可选的。这在一些需要动态路由的场景中非常有用,例如搜索或过滤。
通过使用花括号 {}
包裹可选的路由参数,你可以定义可选路由参数。像这样:
Route::get('/search/{type}/{keyword?}', function($type, $keyword = null) {
if($keyword) {
return "Searching for $type with keyword $keyword";
} else {
return "Displaying all $type";
}
});
这样,如果请求的URL只包含路由的前半部分,即 /search/{type}
,则控制器(或闭包)将返回所有类型为 $type
的项目。如果URL还包括一个关键字参数,例如 /search/book/Laravel
,则返回所有类型为 book
并且包含关键字 Laravel
的项目。
null
。Closure
或者 Controller
处理器来处理,而不能通过 Route::model()
和 Route::bind()
方法进行绑定。上面的例子中,开发者可以在路由 /search/book/webservice
查找所有类型为 book
并且含有关键字 webservice
的项目,但是如果路由 /search/book
,不传递关键字参数,则返回所有类型为 book
的项目。
通过使用可选路由参数,我们可以实现在URL中定义有条件的、有选项的路由。这是Laravel框架非常强大、灵活的路由系统的一个极好的补充,肯定会使我们的Web应用程序的设计更加简单和易用。
Route::get('/search/{type}/{keyword?}', function($type, $keyword = null) {
if($keyword) {
return "Searching for $type with keyword $keyword";
} else {
return "Displaying all $type";
}
});