【问题标题】:Laravel: How to get the current url as a view helper with parametersLaravel:如何获取当前 url 作为带有参数的视图助手
【发布时间】:2016-05-22 10:51:55
【问题描述】:

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

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

domain.com/{lang}/xyz

在我看来,我想做类似的事情

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

所以我可以轻松地重新加载页面,但只需更改“lang”参数。

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

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

【问题讨论】:

    标签: php laravel view-helpers


    【解决方案1】:

    在视图中使用 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

    它非常简单易用。

    【讨论】:

    • 那不回答我的问题。
    • url()->current() 我应该如何在我的 EN 中使用它并给出 {lang} 参数?
    • 在我看来没有使用 php? Laravel 使用模板引擎,因此您不必在视图中处理 php 代码。模型-视图-控制器,还记得吗?应该有一个viewhelper。
    • 只要使用&lt;a href="{{ URL::action(Route::current()-&gt;getName(), ['lang' =&gt; 'en']) }}"&gt;EN&lt;/a&gt;
    • 还有&lt;a href="{{ URL::action(Route::currentRouteName(), ['lang' =&gt; 'en']) }}"&gt;EN&lt;/a&gt;
    猜你喜欢
    • 1970-01-01
    • 2011-09-22
    • 2017-04-09
    • 1970-01-01
    • 1970-01-01
    • 2012-01-27
    • 2016-07-12
    • 2015-04-01
    • 2015-09-03
    相关资源
    最近更新 更多