Laravel与params联系,同时更新一些现有的params

时间:2015-05-23 04:47:45

标签: php laravel laravel-5

说我有一个网址: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>

问题是它每次只是继续追加另一个&amp; sub_category_id =#...当我真的希望它更新时。谷歌搜索我发现这几乎是我需要的东西:

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

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

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

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

在Laravel分页中我们可以做->appends(Input::except('page'))希望有可能以某种方式将其添加到链接场景中吗?

但是Laravel不起作用,不起作用,任何想法?我链接在我的链接中做所有这些(如果可能的话)而不是创建一个函数来获取所有params更新然后放回到一个URL ...谢谢

1 个答案:

答案 0 :(得分:1)

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

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