【问题标题】:Laravel link with params while updating some existing paramsLaravel 与参数链接,同时更新一些现有参数
【发布时间】:2015-05-23 04:47:44
【问题描述】:

假设我有一个网址:www.site.com/search?category=1&sub_category_id=1

在显示结果的页面上,我有需要优化的链接,例如:

<a href="{!! $_SERVER['REQUEST_URI'] !!}&sub_category_id=1">Category 1</a>
<a href="{!! $_SERVER['REQUEST_URI'] !!}&sub_category_id=2">Category 2</a>
<a href="{!! $_SERVER['REQUEST_URI'] !!}&sub_category_id=3">Category 3</a>
<a href="{!! $_SERVER['REQUEST_URI'] !!}&sub_category_id=4">Category 4</a>

问题是它只是不断地附加另一个 &sub_category_id=# 每次......当我真正想要它更新时。谷歌搜索我发现这几乎是我需要的:

{!! link_to_action('SearchController@search', 'Sub Cat 1', Input::all()) !!}

这里的问题是如何“更新”现有的 sub_category_id...尝试了 Input::merge 但除了我的合并之外,它并没有发送所有输出。

我的理想方法是以某种方式实现这一点(因为我想链接到 URL 而不是控制器):

{!! HTML::link('/search', 'Sub Category 1", Input::all()-&gt;merge(['sub_category_id' =&gt; 1')) !!}

在 Laravel 分页中,我们可以执行 -&gt;appends(Input::except('page')) 是否希望可以以某种方式将其添加到链接场景中?

但是 Laravel 不行,那不行,有什么想法吗?我会在我的链接中链接来完成所有这些(如果可能的话),而不是创建一个函数来获取所有参数更新然后放回一个 url...谢谢

【问题讨论】:

    标签: php laravel laravel-5


    【解决方案1】:

    在 Laravel 5 中,你有 Request 外观(在 Laravel 4 中使用 Input)。因此,您可以通过阅读documentation 以多种方式实现这一目标。最简单的单行解决方案是获取除sub_category_id 之外的所有输入参数,然后附加您的:

     {!! link_to_action('SearchController@search', 'Sub Cat 1', 'Test', array_merge(Request::except(['sub_category_id']), ['sub_category_id' => 1]))) !!}
    

    【讨论】:

    • 问题,不会然后我的链接{! link_to_action('SearchController@search', 'Sub Cat 2', 'Cat 2', Request::all())) !!} 去 sub_category_id 1 以及什么时候应该去 2?这是我只想重新发送相同参数但通过链接更新的问题。
    • @sprintcar78a 是的,没错,您应该在每次想要更改sub_category_id 时进行合并。就像您每次都必须传递不同的数组一样。我已经更新了我的答案。
    • 好的太棒了,(对不起,最初没有想到在每个链接之前添加)-它正在工作。是否可以通过另一个函数使用实际的 URL 并附加即 '/search', Request::all() 而不必使用控制器来做到这一点?没关系,但觉得它对我来说更容易阅读。
    • 是的,如果您想要单行解决方案,可以使用{!! link_to_action('SearchController@search', 'Sub Cat 1', 'Test', array_merge(Request::except('sub_category_id'), ['sub_category_id' =&gt; 1]))) !!}。我已经更新了我的答案。
    • 太好了 - 谢谢!好的,刚刚发现如果使用分页,还需要将“页面”添加到 Request::except() 中,这样它将在类别更改时在第一页重新启动。即如果在第 5 页和下一个类别只有 2 页,它会显示一个空白:)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-08-29
    • 2023-03-25
    • 2011-01-29
    • 2013-12-01
    • 1970-01-01
    相关资源
    最近更新 更多