不要将中间件应用于特定路由

时间:2018-03-22 17:37:18

标签: laravel

我想要一个中间件应用于组中的所有路由,除了一个路由。我可以在路由上指定不应用中间件吗?

1 个答案:

答案 0 :(得分:0)

路由组是将相同配置应用于它们包含的所有路由的一种方法。我知道您希望与除一个之外的所有路由共享大部分中间件配置。您可以使用嵌套路由组来完成大部分配置。

以下应该为您解决问题:

Route::group(['middleware' => ['a', 'b', 'c']], function () {
    Route::get('route1_with_3_middlewares', 'MyController@test');
    Route::group(['middleware' => 'd'], function () {
        Route::get('route2_with_4_middlewares', 'MyController@test');
        Route::get('route3_with_4_middlewares', 'MyController@test');
        Route::get('route4_with_4_middlewares', 'MyController@test');
    });
});

通过这种方式,您可以将中间件 a b c 应用于应用于所有路径和中间件 d 除第一条之外的所有路线。