Laravel 5.4-如何使用通配符进行路由?

Jas*_*yer 2 php laravel-5

经过一番研究和研究之后,似乎在Laravel 5+中已弃用了Route::when()Route::filter()。我需要能够将所有以URI开头的URI路由members到同一控制器。例如:

Route::get('members/home', 'MembersController');
Route::get('members/view/all', 'MembersController');
Route::get('members/any/possible/route', 'MembersController');
Run Code Online (Sandbox Code Playgroud)

我不会知道所有以成员开头的可能路线,因为它们将存储在我的数据库中。是否存在与我可以在5.4中使用的Laravel 4.2等效的通配符?

这个想法是让所有以某些前缀开头的路由都到达其指定的控制器,然后控制器将比较整个URI字符串,并检索数据库中具有匹配的段的页面。

fub*_*bar 5

您可以使用允许任何值的route参数来执行此操作。例如(.*)。然后,您将需要处理来自单个控制器动作的所有请求。

Route::get('members/{action}', 'MemberController@all')->where('action', '(.*)');
Run Code Online (Sandbox Code Playgroud)

更进一步,如果您不知道所有GET请求都是请求,则可以使用:any方法类型。

Route::any('members/{action}', 'MemberController@all')->where('action', '(.*));
Run Code Online (Sandbox Code Playgroud)