删除laravel 5.2中的Web中间件

时间:2016-07-21 06:25:33

标签: laravel-5.2

我知道现在为每条路线分配了web中间件组。但有人可以告诉我如何删除如果为specefic路线?我试过了:

class HomeController extends Controller{
    public function __construct(){
        $this->middleware('web',['except'=>[
            'index',
        ]]);

    }
}

它没有用。

1 个答案:

答案 0 :(得分:1)

Web中间件现在应用于routes.php中的所有路由。这发生在RouteServiceProvider映射函数中。

如果你有一个不应该使用网络中间件的api,你可以使用这样的东西

public function map(Router $router)
{
    $this->mapWebRoutes($router);
    $this->mapApiRoutes($router);
}

protected function mapWebRoutes(Router $router)
{
    $router->group([
        'namespace' => $this->namespace, 'middleware' => 'web',
    ], function ($router) {
        require app_path('Http/routes.php');
    });
}

protected function mapApiRoutes(Router $router) 
{
    $router->group([
        'namespace' => $this->namespace, 'middleware' => 'api',
    ], function ($router) {
        require app_path('Http/routes-api.php');
    });
}

现在routes.php中的每个路由都有web中间件和routes-api.php中的所有内容api中间件