Php 获取当前URL+&引用;";内置定制按钮拉维刀片

Php 获取当前URL+&引用;";内置定制按钮拉维刀片,php,laravel,routes,url-routing,laravel-blade,Php,Laravel,Routes,Url Routing,Laravel Blade,我有一个“EN”按钮和“FR”按钮。用于交换语言。 到目前为止,我试着这样说: 一, ` 这只能获取当前url 这也不起作用: {{url(app()->getLocale().Request::url())} 当你按下按钮时,什么也没发生 处理URL的正确方法是什么 我希望当前URL使用区域设置语言,例如from www.mydomain.com/en/服务 到 www.mydomain.com/fr/服务 请记住,我在routes.php中有prefix=>{locale}如果语言是静

我有一个“EN”按钮和“FR”按钮。用于交换语言。 到目前为止,我试着这样说:

一,

`
这只能获取当前url

  • 这也不起作用:
    {{url(app()->getLocale().Request::url())}
  • 当你按下按钮时,什么也没发生

    处理URL的正确方法是什么

    我希望当前URL使用区域设置语言,例如
    from
    www.mydomain.com/en/服务

    www.mydomain.com/fr/服务

    请记住,我在routes.php中有prefix=>{locale}

    如果语言是静态的,您可以执行以下操作:


  • 如果语言是静态的,您可以执行以下操作:


  • 这应该能帮到你

    在web.php文件中,我假定您已经为路由设置了名称

    Route::group(['prefix' => '{locale}'], function () {
        Route::get('/', 'YourController@yourMethod')->name('your-route-name');
    });
    
    现在,在你的刀片看来,应该是这样的

    <a href="{{ route('your-route-name', 'en') }}">EN</a>
    
    关于页面翻译,我不知道你的应用程序在做什么。所以,我至少可以帮上忙

    是的,您使用
    url(/en)
    在一定程度上是正确的。但是,您必须更新所有视图文件。使用
    route()
    ,只需更新web.php文件一次。您不需要更新视图文件,因为您正在使用方法
    route
    ,并且Laravel足够聪明,可以用适当的参数替换链接


    欲了解更多信息,我敦促您仔细阅读。这将让您更深入地了解
    路线
    url

    的不同之处,这将对您有所帮助

    在web.php文件中,我假定您已经为路由设置了名称

    Route::group(['prefix' => '{locale}'], function () {
        Route::get('/', 'YourController@yourMethod')->name('your-route-name');
    });
    
    现在,在你的刀片看来,应该是这样的

    <a href="{{ route('your-route-name', 'en') }}">EN</a>
    
    关于页面翻译,我不知道你的应用程序在做什么。所以,我至少可以帮上忙

    是的,您使用
    url(/en)
    在一定程度上是正确的。但是,您必须更新所有视图文件。使用
    route()
    ,只需更新web.php文件一次。您不需要更新视图文件,因为您正在使用方法
    route
    ,并且Laravel足够聪明,可以用适当的参数替换链接



    欲了解更多信息,我敦促您仔细阅读。这将让您更深入地了解
    路由
    url

    的不同之处,这是一个很好的建议,但Request::url()的问题是它只将url添加到当前url中,如下所示:。mydomain.com/fr/serviceshmydomain.com/en/services所以我认为Request::url()不是这里的解决方案。你是对的,我的错,
    Route::path()
    是你想要的,我更新了我的答案,但仍然在url中添加了路径。这不是一个好的解决方案。您是否在href开头添加了前导的
    /
    ,或者设置了baseUrl?您必须单击4次,然后查看发生了什么好的建议,但Request::url()的问题是它只将url添加到当前url,如下所示:。mydomain.com/fr/serviceshmydomain.com/en/services所以我认为Request::url()不是这里的解决方案。你是对的,我的错,
    Route::path()
    是你想要的,我更新了我的答案,但仍然在url中添加了路径。这不是一个好的解决方案。您是否在href开头添加了前导的
    /
    ,或者设置了baseUrl?您必须单击4次,然后查看发生了什么,但如何添加url的其他部分?en/SERVICES?此解决方案与:{{url('/en')}}@RogaMen检查更新1此按钮位于导航栏中。。。所以它需要对所有链接都是可变的。现在,当我点击EN按钮时,只会更改“主页”。如果我在其他页面上,例如/services,尝试从FR单击到EN,它也会将我重定向到“主页”页面。但是如何添加url的其他部分呢?en/SERVICES?此解决方案与:{{url('/en')}}@RogaMen检查更新1此按钮位于导航栏中。。。所以它需要对所有链接都是可变的。现在,当我点击EN按钮时,只会更改“主页”。如果我在其他页面上,例如/服务,并尝试从FR单击到EN,它也会重定向我的“主页”。
    Route::group(['prefix' => '{locale}/SERVICES'], function () {
        Route::get('/', 'YourController@yourMethod')->name('your-route-name');
    });