ホームページ > バックエンド開発 > PHPチュートリアル > URLデフォルトを使用したLaravelの合理化ルートパラメーター

URLデフォルトを使用したLaravelの合理化ルートパラメーター

James Robert Taylor
リリース: 2025-03-06 01:41:09
オリジナル
363 人が閲覧しました

Streamlining Route Parameters in Laravel Using URL Defaults

LaravelアプリケーションでのURLパラメーターの管理、特に複数の言語または複雑なルーティングパターンを持つパラメーターが繰り返される可能性があります。 Laravelは、URLデフォルトを介してエレガントなソリューションを提供し、URLパラメーターのアプリケーション全体のデフォルト値を設定できます。この強力な機能の実装を調べてみましょう #understanding

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([
            &#39;locale&#39; => $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(&#39;{locale}/{currency}&#39;)->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 サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート