【发布时间】:2022-01-04 08:23:29
【问题描述】:
我想在 laravel 中使用分页,但效果不佳。当我对过滤后的数据进行分页时,它工作正常,但仅适用于第一页。问题是当我移至第二页时,它将显示所有数据的第二页,而不是过滤后的数据。我想要它,所以第二页将显示过滤数据的第二页
在blade.php中我使用链接来调用分页(用于移动页面)
<div class="paginate">
{{ $data->links() }}
</div>
这是过滤器控制器
function filter(Request $request){
$data = profiles::when($request->has('pNamaLengkap'), function($query) use ($request){
$query->where('pNamaLengkap','like','%'.$request->pNamaLengkap.'%');
});
if($request->pJobDescription != 'All'){
$data = $data->where('pJobDescription','like','%'.$request->pJobDescription.'%');
}
if($request->pUnitKerja != 'All'){
$data = $data->where('pUnitKerja','like','%'.$request->pUnitKerja.'%');
}
if($request->pDirectorate != 'All'){
$data = $data->where('pDirectorate','like','%'.$request->pDirectorate.'%');
}
if($request->pRank != 'All'){
$data = $data->where('pRank','like','%'.$request->pRank.'%');
}
return view('export', [
'data' => $data->paginate(5),
'jobdescription' => jobdes::all(),
'unitkerja' => unitkerja::all(),
'direktorat' => direktorat::all(),
'rank' => rank::all(),
'oldjob' => $request->pJobDescription,
'oldunit' => $request->pUnitKerja,
'olddir' => $request->pDirectorate,
'oldrank' => $request->pRank,
'oldname' => $request->pNamaLengkap
]);
// return redirect('export')->with([
// 'data' => $data,
// 'jobdescription' => jobdes::all(),
// 'unitkerja' => unitkerja::all(),
// 'direktorat' => direktorat::all()
// ]);
}
我会用图片做一个例子
Filtered JobDescription Page 1
Page 2 that reset the filter and display all data
在 URL 参数中将其更改为
http://127.0.0.1:8000/filterexport?pNamaLengkap=&pJobDescription=Full+Stack+Developer&pUnitKerja=All&pDirectorate=All&pRank=All&export=Filter
进入
http://127.0.0.1:8000/filterexport?page=2
额外说明,分页正在工作,但是当您想查看第二页时却无法正常工作,因为它以某种方式重置了输入过滤器
感谢您阅读此页面,我真的需要帮助
【问题讨论】:
标签: laravel pagination laravel-pagination