Rumah >pembangunan bahagian belakang >tutorial php >Memperkenalkan Parameter Laluan di Laravel Menggunakan URL Defaults
Menguruskan parameter URL dalam aplikasi Laravel, terutamanya yang mempunyai pelbagai bahasa atau corak penghalaan kompleks, boleh menjadi berulang. Laravel menyediakan penyelesaian yang elegan melalui lalai URL, yang membolehkan anda menetapkan nilai lalai aplikasi untuk parameter URL. Mari kita meneroka pelaksanaan ciri yang kuat ini.
URL Default membolehkan anda menentukan nilai lalai global untuk parameter URL merentasi aplikasi anda. Ini membuktikan sangat berharga untuk mengendalikan parameter biasa seperti keutamaan bahasa atau tetapan serantau.
mari kita melaksanakan lalai URL dalam aplikasi berbilang bahasa dengan sokongan mata wang:
<!-- 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); } }
Daftar middleware di kernel anda:
<!-- Syntax highlighted by torchlight.dev --><?php namespace App\Http; class Kernel extends HttpKernel { protected $middleware = [ // ... other middleware \App\Http\Middleware\SetUrlDefaults::class, ]; }
Melaksanakan struktur penghalaan:
<!-- 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(); } }
Dalam pandangan anda, anda boleh menjana URL tanpa menyatakan secara jelas lalai:
<!-- 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>
Pelaksanaan ini menyediakan penghalaan yang bersih dan dikekalkan semasa mengendalikan keutamaan pengguna secara automatik merentasi aplikasi anda.
Atas ialah kandungan terperinci Memperkenalkan Parameter Laluan di Laravel Menggunakan URL Defaults. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!