Verwaltung von URL -Parametern in Laravel -Anwendungen, insbesondere solchen mit mehreren Sprachen oder komplexen Routing -Mustern, können sich wiederholen. Laravel bietet eine elegante Lösung über URL-Standardeinstellungen, sodass Sie anwendungsweite Standardwerte für URL-Parameter festlegen können. Lassen Sie uns die Implementierung dieser leistungsstarken Funktionen untersuchen.
URL -Standardeinstellungen ermöglichen es Ihnen, globale Standardwerte für URL -Parameter in Ihrer Anwendung zu definieren. Dies erweist sich als besonders wertvoll für die Behandlung gemeinsamer Parameter wie Sprachpräferenzen oder regionalen Einstellungen.
Implementieren wir URL -Standardeinstellungen in einer mehrsprachigen Anwendung mit Währungsunterstützung:
<!-- Syntax highlighted by torchlight.dev --><?php namespace App\Http\Middleware; use Closure; use Illuminate\Http\Request; use Illuminate\Support\Facades\URL; class SetUrlDefaults { public function handle(Request $request, Closure $next) { URL::defaults([ 'locale' => $request->user()?->preferred_language ?? config('app.locale'), 'currency' => $request->user()?->preferred_currency ?? 'USD' ]); return $next($request); } }
Registrieren Sie die Middleware in Ihrem Kernel:
<!-- Syntax highlighted by torchlight.dev --><?php namespace App\Http; class Kernel extends HttpKernel { protected $middleware = [ // ... other middleware \App\Http\Middleware\SetUrlDefaults::class, ]; }
Implementierung der Routing -Struktur:
<!-- Syntax highlighted by torchlight.dev --><?php use App\Http\Controllers\ProductController; Route::prefix('{locale}/{currency}')->group(function () { Route::get('products', [ProductController::class, 'index']) ->name('products.index'); Route::get('products/{product}', [ProductController::class, 'show']) ->name('products.show'); }); class ProductController extends Controller { public function index() { // URLs will automatically use default locale and currency return view('products.index', [ 'products' => Product::paginate(20), 'categoryUrl' => route('products.category', ['category' => 'electronics']) ]); } public function changePreferences(Request $request, $locale, $currency) { $request->user()->update([ 'preferred_language' => $locale, 'preferred_currency' => $currency ]); return redirect()->back(); } }
In Ihren Ansichten können Sie URLs generieren, ohne die Standardeinstellungen explizit anzugeben:
<!-- Syntax highlighted by torchlight.dev --><!-- Products listing view --> <nav> <a href="{{ route('products.index') }}">{{ __('All Products') }}</a> <a href="{{ route('products.show', $product) }}">{{ $product->name }}</a> </nav> <!-- Only override when needed --> <a href="{{ route('products.index', ['currency' => 'EUR']) }}"> {{ __('View in Euros') }} </a>
Diese Implementierung bietet ein sauberes, wartbares Routing, während die Benutzerpräferenzen in Ihrer Anwendung automatisch behandelt werden.
Das obige ist der detaillierte Inhalt vonStraffungsroutenparameter in Laravel unter Verwendung von URL -Standardeinstellungen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!