Как отключить/удалить или изменить порядок middleware в Laravel

Категория: Laravel

Способы отключения/удаления middleware в Laravel.

Отключить middleware для роута:

Route::post('some-route', 'SomeController@action')->withoutMiddleware(['excluded-middleware']);

Отключить middleware для группы маршрутов:

Route::group([
    'prefix' => 'optional-prefix', // @note НЕ переопределяет родительский prefix в app/Providers/RouteServiceProvider.php!
    'excluded_middleware' => ['excluded-middleware'],
    'middleware' => ['auth:web'],  // @note Добавить нужные middleware
], function () {
    Route::post('some-route', 'SomeController@action');
});

Используем метод Route::prependMiddlewareToGroup() для вставки дополнительных middleware в нужном порядке:

// @note Разрешить аторизацию API запросов по сессии. Это решение для работы с API на скорую руку. Лучше настроить авторизацию по токену.
Route::prependMiddlewareToGroup('api', \App\Http\Middleware\EncryptCookies::class);
Route::prependMiddlewareToGroup('api', \Illuminate\Session\Middleware\StartSession::class);

Route::namespace('Api')->name('api.')->middleware(['auth:web'])->group(function() {
    Route::post('some-route', 'SomeController@action');
    Route::apiResource('some-resource', 'SomeResourceController');
});


#php, #laravel, #middleware, #routes

категория: Laravel