Laravel:如何将当前url作为带有参数

时间:2016-02-11 15:17:39

标签: php laravel view-helpers

我想在我的视图中构建一个链接,指向与放置它的那个页面相同的页面。我希望能够给出一个参数。

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

这样的路线
domain.com/{lang}/xyz

在我看来,我想做一些像

这样的事情
<a href="{{ URL::action(this, ['lang' => 'en']) }}">EN</a>

所以我可以轻松地重新加载页面,但只需更改&#34; lang&#34;参数。

希望它可以理解。请尽力帮助我。

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

1 个答案:

答案 0 :(得分:20)

使用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

它非常简单易用。