通过在具有中间件本身的组中使用中间件,我遇到了一些问题,如下面的代码:
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范围之外进入最后一个中间件事件。我怎么能避免呢? 谢谢大家
答案 0 :(得分:1)
根据您的评论,我看到您在$middleware
和$routeMiddleware
上添加了中间件,因此AuthenticationMiddleware
将在每次请求时运行。如果您只希望您的请求在指定的路线上传递AuthenticationMiddleware
,请将其从$middleware
移除,并将其保留在$routeMiddleware
。
来自文档:
如果您希望在每次向您的HTTP请求期间运行中间件 应用程序,只需在$ middleware中列出中间件类 你的app / Http / Kernel.php类的属性。
和:
如果您想将中间件分配给特定路由,则应该 首先在中间件中分配一个简短的密钥 app / Http / Kernel.php文件。默认情况下,$ routeMiddleware属性 此类包含Laravel附带的中间件的条目。 要添加自己的,只需将其附加到此列表并为其分配键 你的选择。