Параметризований Middleware у Laravel

1
Перекладено ШІ
Оригінал: Laravel News
Оновлено: 17 грудня, 2025
Досліджте, як параметризовані middleware у Laravel роблять вашу систему доступу більш гнучкою та потужною! Ця стаття розкриває, як реалізувати контроль доступу на основі ролей для захисту маршрутів, що спростить ваше програмування
Система проміжного програмного забезпечення (middleware) у Laravel стає ще потужнішою завдяки можливості передачі параметрів, що дозволяє реалізувати динамічну поведінку в залежності від значень під час виконання. Це особливо корисно для контролю доступу на основі ролей, обмеження швидкості або в будь-якому випадку, де потрібна налаштовувана логіка middleware. ```php namespace App\Http\Middleware; use Closure; use Illuminate\Http\Request; class EnsureUserHasRole { public function handle(Request $request, Closure $next, string ...$roles) { if (!$request->user()?->hasAnyRole($roles)) { return response()->json([ 'error' => 'Недостатньо прав' ], 403); } return $next($request); } } ``` Розглянемо, як реалізувати захист маршрутів на основі ролей: ```php use App\Http\Controllers\PostController; use App\Http\Middleware\EnsureUserHasRole; Route::prefix('posts')->group(function () { // Публічні маршрути Route::get('/', [PostController::class, 'index']); // Маршрути для редакторів Route::put('/{id}', [PostController::class, 'update']) ->middleware(EnsureUserHasRole::class . ':editor'); Route::post('/', [PostController::class, 'store']) ->middleware(EnsureUserHasRole::class . ':editor'); // Маршрути для адміністраторів Route::delete('/{id}', [PostController::class, 'destroy']) ->middleware(EnsureUserHasRole::class . ':admin'); }); ``` Використання параметризованого middleware забезпечує чистий спосіб впровадження динамічних правил авторизації, дозволяючи зберігати ваші маршрути та контролери компактними

Популярні

Logomark Logotype

Усе, що нам відомо про Livewire 4

Нова версія Livewire 4, представленої Келебом Порзіо на Laracon US 2025, обіцяє значні покращення у швидкості та організації компонентів. Які з інноваційних функцій підкорять ваше серце? Читайте далі, щоб дізнатися більше про те, як Livewire 4 полегшить вашу роботу

Logomark Logotype

Журнал аудиту в Laravel

Хочете забезпечити повну прозорість у своїх Laravel-додатках? Пакет Laravel Audit Log допоможе вам детально відстежувати всі зміни моделей Eloquent та відповідати вимогам регуляторів. Читайте далі, щоб дізнатися, як цей потужний інструмент може підвищити надійність вашого проєкту

Logomark Logotype

"SQLSTATE[HY000] [2002] Connection refused" у Laravel в GitHub Actions

Чи стикалися ви з помилкою «SQLSTATE[HY000] [2002] Connection refused» під час налаштування GitHub Actions для вашого додатку на Laravel? У нашій статті ми розглянемо три поширені причини цієї помилки та надамо рішення для їх усунення. Читайте далі, щоб дізнатися, як ваш CI/CD потік може працювати бездоганно!