【问题标题】:Get current URL + "EN" inside custom button LARAVEL BLADE在自定义按钮 LARAVEL BLADE 中获取当前 URL + "EN"
【发布时间】:2019-08-11 00:58:09
【问题描述】:

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

1.

<a href='{{ route(\Illuminate\Support\Facades\Route::currentRouteName(), 'en') }}

但我得到一个错误:ErrorException (E_ERROR) 路线 [] 未定义。

2.

I tried this `<li><a href='{{ Request::url() }}' id="first" class="Mytitle">EN</a></li>`

这只会给你当前的网址

  1. 这也不起作用: {{ url(app()-&gt;getLocale() . Request::url() ) }}

当你按下时什么也没发生

处理 URL 的正确方法是什么?

我想拥有带有语言环境的当前 URL,例如
来自
www.mydomain.com/en/服务

www.mydomain.com/fr/服务
请记住,我在 routes.php 'prefix'=&gt;'{locale}'

【问题讨论】:

    标签: php laravel routes url-routing laravel-blade


    【解决方案1】:

    这应该可以帮助你。

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

    Route::group(['prefix' => '{locale}'], function () {
        Route::get('/', 'YourController@yourMethod')->name('your-route-name');
    });
    

    现在,在您的刀片视图中,它应该是这样的......

    <a href="{{ route('your-route-name', 'en') }}">EN</a>
    

    你用不同的方式写了它。您可以获取有关如何在刀片视图中使用 route 方法的更多信息。 Documentation of route method

    更新 1:

    如何添加url的其他部分?

    Route::group(['prefix' => '{locale}/SERVICES'], function () {
        Route::get('/', 'YourController@yourMethod')->name('your-route-name');
    });
    

    关于页面翻译,我不知道你的应用程序在做什么。所以,我至少可以帮上忙。

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

    如需更多信息,我强烈建议您通过routing documentation。这将使您更深入地了解routeurl 的不同之处

    【讨论】:

    • 但是如何添加其他部分的url呢?恩/服务?
    • 这个解决方法同:{{url('/en')}}
    • @RogaMen 检查更新 1
    • 这个按钮在导航栏中...所以它需要对所有链接都是可变的。现在,当我单击 EN 按钮时,只会更改“主页”页面。如果我在其他页面上,例如 /services 并尝试从 FR 点击到 EN,它也会将我重定向到“主页”页面。
    【解决方案2】:

    如果语言是静态的,你可以这样做:

    <li><a href="/en/{{ Request::path() }}" id="first" class="Mytitle">EN</a></li>
    

    【讨论】:

    • 好建议,但 Request::url() 的问题在于它只将 URL 添加到当前 URL,如下所示:。 mydomain.com/fr/serviceshmydomain.com/en/services 所以我认为 Request::url() 不是这里的解决方案。
    • 你是对的,我的错,Route::path() 是你想要的,我更新了我的答案
    • 好一点,但仍然添加到 url 的路径。不是一个好的解决方案。
    • 您是否在 href 开头添加了前导 / 或设置了 baseUrl?
    • 你必须点击 4 次,看看会发生什么
    猜你喜欢
    • 2016-10-20
    • 2020-04-18
    • 2018-11-15
    • 2018-11-21
    • 2011-11-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多