Laravel 5.1 通配符路由
Laravel 5.1 Wildcard Route
我正在创建一个允许用户定义类别的 CMS。类别下可以有其他类别或页面。我如何在 Laravel 中创建一个路由,该路由将支持可能无限数量的 URI 段?
我尝试了以下方法....
Route::get('/resources/{section}', ['as' => 'show', 'uses' => 'MasterController@show']);
我也试过将路线设为可选...
Route::get('/resources/{section?}', ['as' => 'show', 'uses' => 'MasterController@show']);
请记住,部分可以是多个部分或一页。
首先,您需要提供一个用于匹配参数值的正则表达式。 Laravel 路由器将 / 视为参数分隔符,您必须更改该行为。你可以这样做:
Route::get('/resources/{section}',
[
'as' => 'show',
'uses' => 'MasterController@show'
])
->where(['section' => '.*']);
这样,在 /resources/ 之后并且匹配正则表达式的任何内容都将传递给控制器中的 $section 变量。
我正在创建一个允许用户定义类别的 CMS。类别下可以有其他类别或页面。我如何在 Laravel 中创建一个路由,该路由将支持可能无限数量的 URI 段?
我尝试了以下方法....
Route::get('/resources/{section}', ['as' => 'show', 'uses' => 'MasterController@show']);
我也试过将路线设为可选...
Route::get('/resources/{section?}', ['as' => 'show', 'uses' => 'MasterController@show']);
请记住,部分可以是多个部分或一页。
首先,您需要提供一个用于匹配参数值的正则表达式。 Laravel 路由器将 / 视为参数分隔符,您必须更改该行为。你可以这样做:
Route::get('/resources/{section}',
[
'as' => 'show',
'uses' => 'MasterController@show'
])
->where(['section' => '.*']);
这样,在 /resources/ 之后并且匹配正则表达式的任何内容都将传递给控制器中的 $section 变量。