如何在Laravel 5.2中构建搜索URL分页?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在Laravel 5.2中构建搜索URL分页?相关的知识,希望对你有一定的参考价值。
以下是我对该表格的看法(html): -
{{ Form::open(array('url' => '/search/','method'=>'get', 'id'=>"search_form_header",'name'=>"search_form_header"))}}
<div class="filter_clumn">
<ul>
<li><strong>Looking for</strong></li>
<?php foreach($diningType as $keyDining=>$ditypeval){ ?>
<li>
<div class="checkbox">
<label>
<input type="checkbox" name="looking_for[]" id="looking_for_<?php echo $keyDining;?>" value="<?php echo $ditypeval->id;?>" <?php if(isset($requestLookingFor) && in_array($ditypeval->id, $requestLookingFor)) echo "checked";?>/>
<span class="cr rightcr"><i class="cr-icon glyphicon glyphicon-ok"></i></span>
<?php echo $ditypeval->name; ?>
</label>
</div>
</li>
<?php } ?>
</ul>
</div>
<a href="javascript:void(0);" class="btn yel_btn big_btn" onclick="document.getElementById('search_form_header').submit()">Apply</a>
{!! Form::close() !!}
用户可以选择多个复选框,因此,复选框被视为数组。所以表单提交后的URL是
http://demotest.com/laravel/demo_project/public/search?looking_for[]=1&looking_for[]=2&looking_for[]=3
或者在raw-url中: -
http://demotest.com/laravel/demo_project/public/search?looking_for%5B%5D=1&looking_for%5B%5D=2&looking_for%5B%5D=3
现在,代码工作正常,我可以获得所需的数据。问题是在创建分页链接时: -
在html中,分页设置如下: -
@if (!empty($link))
<div class="col-sm-12">
{!! $link->appends($urlString)->links() !!}
</div>
@endif
$ urlString是laravel技术用于创建分页URL的数组。在laravel中,阵列采用以下形式: -
array('param1'=>'param_value1',
'param2'=>'param_value2',
'param3'=>'param_value3'
);
但由于我使用looking_for []作为数组,我的数组必须如下: -
array('looking_for[]'=>'1',
'looking_for[]'=>'2',
'looking_for[]'=>'3'
);
请注意,密钥是相同/重复的,这在PHP中是不允许的。我在表单提交后创建这样的数组: -
$dining_ids = $request->input('looking_for');
foreach($dining_ids as $di)
{
$urlString['looking_for[]'] = $di;
}
但不是创造
array('looking_for[]'=>'1',
'looking_for[]'=>'2',
'looking_for[]'=>'3'
);
阵列正在变成
array('looking_for[]'=>'3'
);
仅取最后一个值,可能会覆盖键值而不是插入具有相同key_name的新键。我还有什么方法可以解决这个问题?
答案
经过一些研究,我找到了问题的解决方案。其他人可能会面临这样的问题,所以我在这里记录答案。
问题是手动创建数组: -
array('looking_for[]'=>'1',
'looking_for[]'=>'2',
'looking_for[]'=>'3'
);
一种解决方案是改变
{!! $link->appends($urlString)->links() !!}
进入以下内容: -
{{ $link->appends($_GET)->links() }}
上面的代码自动将$_GET
参数放入分页URL。
以上是关于如何在Laravel 5.2中构建搜索URL分页?的主要内容,如果未能解决你的问题,请参考以下文章
Select2 Ajax Laravel 5.2 - 分页结果不起作用?