Клас створює команда:
php artisan make:middleware EnsureUserIsSubscribed
public function handle(Request $request, Closure $next): Response
{
if (! $request->user()?->subscribed()) {
return redirect()->route('billing');
}
return $next($request);
}
Як підключити - залежно від того, де він потрібен:
// на маршруті чи групі
Route::get('/reports', ReportController::class)->middleware(EnsureUserIsSubscribed::class);
// bootstrap/app.php
->withMiddleware(function (Middleware $middleware): void {
$middleware->append(LogRequestId::class); // глобальний, на кожен запит
$middleware->web(append: [SetLocale::class]); // до групи web
$middleware->alias(['subscribed' => EnsureUserIsSubscribed::class]); // коротке ім'я
})
Після аліасу на маршруті можна писати ->middleware('subscribed').
Що змінилося: до Laravel 11 усе це жило в app/Http/Kernel.php (властивості $middleware, $middlewareGroups, $routeMiddleware). У нових застосунках цього класу немає - налаштування в bootstrap/app.php.
У Laravel 13 middleware можна призначити й атрибутом прямо на контролері: #[Middleware('subscribed')].