Laravel Group内部集团中间件

时间:2015-07-30 15:03:07

标签: laravel laravel-5 laravel-routing

通过在具有中间件本身的组中使用中间件,我遇到了一些问题,如下面的代码:

ViewPager

我目前的AuthenticationMiddleware

    Route::group(['prefix' => '{lang?}','middleware'=>'language'], function() {
        Route::get('/', 'HomeController@index');
        Route::get('/login','AuthController@login');
        Route::post('/login','AuthController@do_login');
        Route::get('/logout','AuthController@logout');
        Route::group(['prefix' => 'checkout','middleware'=>'authentication'], function () {
           Route::get('/', "CheckoutController@step1");
    });
});

编辑: 因此,他在/ checkout范围之外进入最后一个中间件事件。我怎么能避免呢? 谢谢大家

1 个答案:

答案 0 :(得分:1)

根据您的评论,我看到您在$middleware$routeMiddleware上添加了中间件,因此AuthenticationMiddleware将在每次请求时运行。如果您只希望您的请求在指定的路线上传递AuthenticationMiddleware,请将其从$middleware移除,并将其保留在$routeMiddleware

来自文档:

  

如果您希望在每次向您的HTTP请求期间运行中间件   应用程序,只需在$ middleware中列出中间件类   你的app / Http / Kernel.php类的属性。

和:

  

如果您想将中间件分配给特定路由,则应该   首先在中间件中分配一个简短的密钥   app / Http / Kernel.php文件。默认情况下,$ routeMiddleware属性   此类包含Laravel附带的中间件的条目。   要添加自己的,只需将其附加到此列表并为其分配键   你的选择。