在自定义按钮LARAVEL BLADE中获取当前URL +“ EN”

时间:2019-03-20 10:49:08

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

我有一个“ 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()->getLocale() . Request::url() ) }}

当您什么也没按下时

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

我想使用具有语言环境语言的当前网址,例如
来自
www.mydomain.com / zh / 服务

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

2 个答案:

答案 0 :(得分: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:

  

如何添加网址的其他部分?

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

关于页面翻译,我不知道您的应用程序在做什么。因此,我至少是可能的帮助。

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

有关更多信息,请您仔细阅读routing documentation。这将使您更加了解routeurl

有何不同

答案 1 :(得分:-1)

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

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