我想在我的 View 中建立一个链接,该链接指向的页面与其所在页面相同。而且我希望能够提供一个参数。

例如,我想更改语言。我有一条路线

domain.com/{lang}/xyz

在我看来,我想做些类似的事情
<a href="{{ URL::action(this, ['lang' => 'en']) }}">EN</a>

因此,我可以轻松地重新加载页面,而只需更改“lang”参数即可。

希望它是可以理解的。请尝试帮助我。

(另一个侧面的问题:是否没有资源,例如Laravel中所有 View 助手的列表?我在哪里知道哪些 View 助手可用?)

最佳答案

在 View 中使用laravel的辅助方法:

url()->current()

这将获取当前的URL。如果您需要获取当前的路线名称,
Route::current()->getName()

现在,您可以使用此路由名称来创建自己的新URL。

例如:
<a href="{{ URL::action(Route::currentRouteName(), ['lang' => 'en']) }}">EN</a>

您的路线定义可能类似于:
Route::get('/{lang}/about/', ['as'=>'about_us', 'uses'=>'PagesController@about'])

这将为您提供当前URL。

但是对于您而言,最好将此包用于多语言:
https://github.com/mcamara/laravel-localization

它非常简单易用。

10-05 20:51
查看更多