在Laravel的一个地方为多个路由设置中间件?

在Laravel的一个地方为多个路由设置中间件?,laravel,Laravel,我看过Laravel代码,他们的文档建议在相应的控制器中设置中间件,但没有提到在多个路由上设置中间件 这似乎是一个非常糟糕的方式来做它,他们描述的方式,有没有更好的方式,让它添加到许多路线从一个部分?或者至少在web.php中定义中间件,但更喜欢前者 现在我必须在控制器中设置它,您可以创建一个组并将所有路由放在该组中,或者您可以在web.php中分配中间件,对于多个路由,我会选择后者 只要您的路由在组内,它们都应该遵循该组的规则,即您在声明组时设置的中间件 您可以将其添加到web.php中的特定

我看过Laravel代码,他们的文档建议在相应的控制器中设置中间件,但没有提到在多个路由上设置中间件

这似乎是一个非常糟糕的方式来做它,他们描述的方式,有没有更好的方式,让它添加到许多路线从一个部分?或者至少在web.php中定义中间件,但更喜欢前者


现在我必须在控制器中设置它,您可以创建一个组并将所有路由放在该组中,或者您可以在web.php中分配中间件,对于多个路由,我会选择后者

只要您的路由在组内,它们都应该遵循该组的规则,即您在声明组时设置的中间件

您可以将其添加到web.php中的特定路由:

Route::get('/','LandingController@index“)->中间件(“来宾”);
或者,您可以将多个路由分组到单个中间件:

Route::group(['middleware'=>'guest'],function()){
路由::获取('/','LandingController@index');
路由::获取('/welcome','WelcomeController@index');
路线::post('/welcome','WelcomeController@index');
});
您还可以在一个组中分配多个MW:

Route::group(['middleware'=>['mw1','mw2','mw3']],function(){
路由::获取('/','LandingController@index');
路由::获取('/welcome','WelcomeController@index');
路线::post('/welcome','WelcomeController@index');
});

您可以使用Route::group并在那里设置中间件

Route:group(['middleware' => 'auth:web'], function() {

    $this->get('/', 'HomeController@index');
    $this->get('/posts', 'PostController@index');

});