Laravel,如何在项目的所有url中替换一个变量

Laravel, how to substitute a variable in all urls of the project

我有一个变量,我需要在项目的所有 url 中替换它。更详细一点:session('locale') 变量 returns 站点语言 'fr' 或其他。我不知道如何将变量替换为默认路由。

我想在模板中使用 <a href="{{session('locale')}}/page">Page</a> 类型的链接 (blade),但我不想堆积 html-template,我想要解决路由开头的问题,使所有 /page 链接默认使用 session('locale') 路由,那些 fr/page

现在路由如下所示:

    [
        // Get Prefix Language ['en', 'fr']
        'prefix' => Localization::language(),
        'middleware' => 'language',
    ],
    function (){

        // Main Page
        Route::get('/', function () {
            return view('home.index');
        });

        // Language Page
        Route::get('/language', function () {
            return view('home.language');
        });
    }
);

您可以使用 URL 默认值,您将需要创建一个像 setDefaultLanguage 这样的中间件,您将在该中间件中使用

URL::defaults(['locale' => session('locale')]);

现在您不再需要将区域设置传递给您调用的每个路由。更多信息 Here

In href you will have to use route() to work correctly.