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 变量。