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

时间:2017-10-22 23:53:47

标签: php laravel-5

经过一些游戏和研究后,似乎在Laravel 5+中不推荐使用Route::when()Route::filter()。我需要能够将以members开头的所有URI路由到同一个控制器。例如:

Route::get('members/home', 'MembersController');
Route::get('members/view/all', 'MembersController');
Route::get('members/any/possible/route', 'MembersController');

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

我们的想法是让任何以某些前缀开头的路由转到指定的控制器,然后控制器将比较整个URI字符串并检索db中具有匹配的slug的页面。

2 个答案:

答案 0 :(得分:4)

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

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

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

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

答案 1 :(得分:1)

head{
color: cyan;
}
body{
color: lightblue;
}

或者更好的是你可以使用组路线。它更快,并优化您的应用程序。

<html>
<head color="cyan">
<h1>Hello!</h1>
</head>
<body>
<p> In This you will find.......</p>
</body>
</html>