Podpora middlewaru pro konkrétní metody v Laravelu 11.38

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ác...

Poptat web

20. 01. 2025

Podpora middlewaru pro konkrétní metody v Laravelu 11.38

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í.

Původní článek publikoval Nabil Hassen.