Laravel 5.1 通配符路由

Posted

技术标签:

【中文标题】Laravel 5.1 通配符路由【英文标题】:Laravel 5.1 Wildcard Route 【发布时间】:2015-10-12 17:22:11 【问题描述】:

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

我已经尝试了以下......

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

我也尝试将路线设为可选...

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

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

【问题讨论】:

【参考方案1】:

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

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

这样,任何出现在 /resources/ 之后并与正则表达式匹配的内容都将传递给控制器​​中的 $section 变量。

【讨论】:

以上是关于Laravel 5.1 通配符路由的主要内容,如果未能解决你的问题,请参考以下文章