ホームページ >バックエンド開発 >PHPチュートリアル >URLデフォルトを使用したLaravelの合理化ルートパラメーター
URLデフォルトでは、アプリケーション全体のURLパラメーターのグローバルデフォルト値を定義できます。これは、言語の好みや地域の設定などの一般的なパラメーターを処理するのに特に価値があることが証明されています。
通貨サポートを備えた多言語アプリケーションにURLデフォルトを実装しましょう:
<!-- 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); } }カーネルにミドルウェアを登録します:
ルーティング構造の実装:
<!-- Syntax highlighted by torchlight.dev --><?php namespace App\Http; class Kernel extends HttpKernel { protected $middleware = [ // ... other middleware \App\Http\Middleware\SetUrlDefaults::class, ]; }
ビューでは、デフォルトを明示的に指定せずにURLを生成できます。
<!-- 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(); } }
この実装は、アプリケーション全体でユーザーの設定を自動的に処理しながら、クリーンで保守可能なルーティングを提供します。
以上がURLデフォルトを使用したLaravelの合理化ルートパラメーターの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。