Laravel 5.1通配符路由

5

我正在创建一个内容管理系统,允许用户定义分类。分类可以有其他子分类或页面。如何在Laravel中创建路由以支持可能无限数量的URI段?

我尝试了以下方法...

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

我还尝试了使路由变为可选项...
Route::get('/resources/{section?}', ['as' => 'show', 'uses' => 'MasterController@show']);

记住,章节可以是多个章节或一页。
1个回答

15

首先,您需要提供一个正则表达式来匹配参数值。 Laravel 路由器将/视为参数分隔符,并且您必须更改该行为。您可以像这样进行更改:

首先,您需要提供一个正则表达式来匹配参数值。Laravel路由器将/视为参数分隔符,您需要更改该行为。您可以使用以下方法进行更改:

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

无论什么跟在/resources/后面且匹配该正则表达式的内容,都将传递给你的控制器中的$section变量。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接