Laravel 5.1通配路线

Jac*_*aug 5 php laravel laravel-routing laravel-5

我正在创建一个允许用户定义类别的CMS.类别可以在其下或页面下具有其他类别.如何在Laravel中创建一个支持可能无限数量的URI段的路由?

我试过以下......

Route::get('/resources/{section}', ['as' => 'show', 'uses' => 'MasterController@show']);
Run Code Online (Sandbox Code Playgroud)

我也试过让路线可选......

Route::get('/resources/{section?}', ['as' => 'show', 'uses' => 'MasterController@show']);
Run Code Online (Sandbox Code Playgroud)

请记住,部分可以是多个部分或页面.

jed*_*ylo 15

首先,您需要提供用于匹配参数值的正则表达式.Laravel路由器将/视为参数分隔符,您必须更改该行为.你可以这样做:

Route::get('/resources/{section}', 
  [
    'as' => 'show', 
    'uses' => 'MasterController@show'
  ])
  ->where(['section' => '.*']);
Run Code Online (Sandbox Code Playgroud)

这样,无论是/ resources /和匹配正则表达式之后的任何内容都将传递给控制器中的$ section变量.