如何在Laravel的路由中放置多个中间件?

时间:2018-07-25 05:33:37

标签: php laravel

这是我的代码:

Route::post('agent_purchase_order/register', 'agent_purchase_orderController@register')
->name('agent_purchase_order_register_do')
->middleware('accessibility')
->middleware('cors'); 

显然它不起作用。请注意,当我单独使用它们时,这些中间件即可工作。知道我该如何处理吗?

4 个答案:

答案 0 :(得分:1)

根据laravel official documentation 您还可以将多个中间件分配给该路由:

REST_FRAMEWORK = {
    'DEFAULT_PERMISSION_CLASSES': (
        'rest_framework.permissions.IsAuthenticated',
    ),
    'DEFAULT_AUTHENTICATION_CLASSES': (
        'rest_framework_jwt.authentication.JSONWebTokenAuthentication',
    )
}

当您在路由中使用分组时,只需将数组传递给中间件

Route::get('/', function () {
    //
})->middleware('first', 'second');

答案 1 :(得分:1)

可以在单个middleware()函数中添加多个中间件,如下所示:

Route::post('agent_purchase_order/register', 'agent_purchase_orderController@register')
        ->name('agent_purchase_order_register_do')
        ->middleware('accessibility', 'cors');

答案 2 :(得分:0)

Route::group(['middleware' => ['accessibility','cors'], function () {
    Route::post('agent_purchase_order/register', 'agent_purchase_orderController@register')
        ->name('agent_purchase_order_register_do'); 
});

答案 3 :(得分:0)

希望,这种方式会有所帮助,请检查并申请。

Route::group(['namespace' => 'Admin', 'prefix' => 'admin', 'middleware' => ['accessibility', 'cors']]);