Ve verzi Laravel 11.38 zavádí framework dvě nové metody, middlewareFor a withoutMiddlewareFor, což vývojářům umožňuje použít nebo vyloučit middleware pro konkrétní metody v trasách zdrojů a singletonů. Tuto funkci navrhl MrPunyapal in Požadavek na vytažení #53313, zpřesňuje přiřazení middlewaru.
Příklady middlewareFor a withoutMiddlewareFor
Níže jsou uvedeny příklady použití těchto metod.
Příklad 1: Použití middlewaru s middlewareFor
middleware můžete přiřadit konkrétním metodám v rámci trasy prostředku pomocí. middlewareFor.
use Illuminate\Support\Facades\Route; Route::resource('users', UserController::class) ->middlewareFor('show', 'auth'); Route::apiResource('users', UserController::class) ->middlewareFor(['show', 'update'], 'auth'); Route::resource('users', UserController::class) ->middlewareFor('show', 'auth') ->middlewareFor('update', 'auth'); Route::apiResource('users', UserController::class) ->middlewareFor(['show', 'update'], ['auth', 'verified']);
Příklad 2: Použití middlewaru na singletonové trasy
Na stránkách middlewareFor Metoda funguje bez problémů i s jednovětvovými trasami.
use Illuminate\Support\Facades\Route; Route::singleton('users', UserController::class) ->middlewareFor('show', 'auth'); Route::apiSingleton('users', UserController::class) ->middlewareFor(['show', 'update'], 'auth'); Route::singleton('users', UserController::class) ->middlewareFor('show', 'auth') ->middlewareFor('update', 'auth'); Route::apiSingleton('users', UserController::class) ->middlewareFor(['show', 'update'], ['auth', 'verified']);
Příklad 3: Odstranění middlewaru pomocí withoutMiddlewareFor
Na stránkách withoutMiddlewareFor metoda vylučuje middleware z určitých metod.
use Illuminate\Support\Facades\Route; Route::middleware('auth', 'verified', 'other')->group(function () { Route::resource('users', UsersController::class)->withoutMiddlewareFor(['create', 'store'], 'verified') ->withoutMiddlewareFor('index', ['auth', 'verified']) ->withoutMiddlewareFor('destroy', 'other'); Route::singleton('user', UserController::class)->withoutMiddlewareFor('show', ['auth', 'verified']) ->withoutMiddlewareFor(['create', 'store'], 'verified') ->withoutMiddlewareFor('destroy', 'other');});
Závěr
Nový middlewareFor a withoutMiddlewareFor metody v Laravel 11.38 zjednodušují proces správy middlewaru pro jednotlivé metody v trasách resource a singleton. Tyto funkce poskytují flexibilitu a přesnost při přiřazování middlewaru, čímž zlepšují zkušenosti vývojářů.
Tato funkce je k dispozici od verze Laravel 11.38. Další podrobnosti naleznete v oficiální žádost o stažení.