РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
420 of 1392 menu

Метод withoutMiddleware

Метод withoutMiddleware применяется к экземпляру маршрута и позволяет исключить один или несколько промежуточных слоёв (middleware) из цепочки обработки запроса. Это полезно, когда для определённого маршрута нужно отключить глобальные или групповые посредники, например, проверку CSRF-токена или аутентификацию. Первым параметром передаётся имя класса посредника или массив имён.

Синтаксис

<?php Route::get($uri, $action)->withoutMiddleware($middleware); ?>

Пример

Исключим проверку CSRF-токена для маршрута с формой обратной связи:

<?php use AppHttpControllersFeedbackController; Route::post('/feedback', [FeedbackController::class, 'store']) ->withoutMiddleware(\AppHttpMiddlewareVerifyCsrfToken::class); ?>

Пример

Исключим несколько посредников одновременно для группы маршрутов административной панели:

<?php use AppHttpControllersAdminController; Route::prefix('admin')->group(function () { Route::get('/dashboard', [AdminController::class, 'dashboard']) ->withoutMiddleware([ \AppHttpMiddlewareAuthenticate::class, \AppHttpMiddlewareEncryptCookies::class ]); Route::get('/users', [AdminController::class, 'users']) ->withoutMiddleware([ \AppHttpMiddlewareAuthenticate::class, \AppHttpMiddlewareEncryptCookies::class ]); }); ?>

Пример

Используем метод withoutMiddleware внутри определения маршрутов с промежуточными слоями. Исключим посредник для API-маршрута:

<?php use AppHttpControllersApiUserController; Route::middleware('auth:sanctum')->group(function () { Route::get('/user', [ApiUserController::class, 'show']); Route::post('/user', [ApiUserController::class, 'store']) ->withoutMiddleware('auth:sanctum'); }); ?>

В этом примере для POST-запроса к / user посредник auth:sanctum будет исключён, тогда как GET-запрос останется защищённым.

Пример

Исключим посредник для маршрута с использованием контроллера и указанием метода:

<?php use AppHttpControllersPaymentController; Route::controller(PaymentController::class)->group(function () { Route::get('/payment/status', 'status') ->withoutMiddleware(\AppHttpMiddlewareCheckPayment::class); Route::post('/payment/process', 'process') ->withoutMiddleware(\AppHttpMiddlewareCheckPayment::class); }); ?>

Смотрите также

  • метод middleware,
    который назначает посредники для маршрута
  • метод group,
    который группирует маршруты и применяет общие настройки
  • метод prefix,
    который добавляет префикс к URI маршрутов
  • метод where,
    который добавляет ограничения для параметров маршрута
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить