我有一个页面上显示的实体列表。除此之外,我还有一个实体过滤表格和一些快速链接,如“隐藏”和“显示”实体。
“隐藏”链接的网址为mysite.com/entities?hidden=1,“显示”为mysite.com/entities?hidden=0。所以我传递隐藏的参数来过滤实体。
另一方面,我有一个单独的表单放在页面的某个位置(我不想将隐藏/显示的链接转换为复选框并将它们插入表单中),用于以其他方式过滤实体,如选择实体类别,或按实体名称搜索。
我想实现下一个逻辑:我点击隐藏的链接并获得所有隐藏实体的列表(mysite.com/entities?hidden=1)。然后我使用我的表单并过滤实体,但“隐藏”的参数消失了。在表单操作中,我返回View::make
。
withInput
不合适,因为它在重定向中使用,而不是在View类中使用。
可能的解决方案是添加保留值
的隐藏输入@if (Input::has('hidden'))
<input type="hidden" name="hidden" value="{{ Input::get('hidden') }}" />
@endif
这样的事情。但还有其他解决方案吗?如果我有很多查询参数并且我想保留它们怎么办。
答案 0 :(得分:3)
我认为您的表单是以POST
发送的,因此要发布到您现在拥有的确切网址,您需要:
{{ Form::open(['url' => Request::fullUrl(), ...]) }}
这会将您的查询字符串保留在网址中,因此您将POST
到例如。
domain.com/entities?hidden=0
修改强>
如果您想依赖action
而不是当前网址,请改为执行此操作:
{{ Form::open([
'url' => action('PageController@showAdminMaterials', ['hidden' => $hiddenValue]),
...
]) }}
请注意,如果引用的操作接受任何参数,则需要先指定它们,然后添加将成为查询字符串参数的hidden
。