我想在我的 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
它非常简单易用。