[英]Search Method with pagination result
我用一些过滤器制作了一个搜索方法(GET),我遇到的唯一问题是当我运行搜索结果时,我得到的地址与分页地址类似:
搜索Q =&type_licence_id =&activite_licence_id =&structure_id = 8
例如,当我单击第2页时,我有:
搜索?页= 2
因此,它会再显示搜索查询的结果。
也许我在控制器上做错了什么? 希望有人可以帮助我,在此先多谢
这是我的控制器:
public function search(Request $request)
{
$structure = Structure::select('num_structure', 'nom_structure' , 'id')
->get()
->mapWithKeys(function($i) {
return [$i->id => $i->num_structure.' - '.$i->nom_structure];
});
$activite = ActiviteLicencie::pluck('lb_activite' , 'id');
$type_licence = Type_licence::pluck('lb_type' , 'id');
$query = Licencies::query();
$filters = [
'type_licence_id' => 'type_licence_id',
'activite_licence_id' => 'activite_licencie_id',
'structure_id' => 'structure_id',
];
foreach ($filters as $key => $column) {
$query->when($request->{$key}, function ($query, $value) use ($column) {
$query->where($column, $value);
});
}
$licencies = $query->paginate(10);
return view('licencie/recherche', compact('licencies' , 'structure' , 'activite' , 'type_licence'));
}
我在刀片模板中使用以下内容:
{{ $licencies->appends(Request::all())->links() }}
它将所有请求参数附加到分页中。
在https://laravel.com/docs/5.4/pagination#displaying-pagination-results上检查“附加到分页链接”以获取信息
您可以通过以下方式自定义分页网址
$licencies = $query->paginate(10);
$licencies->setPath($request->fullUrlWithQuery());
文档:
https://laravel.com/docs/5.4/pagination#displaying-pagination-results
https://laravel.com/api/5.4/Illuminate/Pagination/LengthAwarePaginator.html#method_setPath
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.