分页的第二页不会显示过滤后的数据
Second page of paginate won't display the filtered data
我想在 laravel 中使用分页,但效果不佳。当我对过滤后的数据进行分页时,它工作正常,但只有第一个 page.The 问题是当我移至第二页时,它将显示所有数据的第二页而不是过滤后的数据。我想要它,所以第二页将显示过滤数据的第二页
在 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
另外请注意,分页功能可以正常工作,但当您想查看第二页时却无法正常工作,因为它以某种方式重置了输入过滤器
感谢您阅读此页,我真的需要这方面的帮助
$data->paginate(15)->withQueryString();
对分页数据使用 withQueryStrings() 方法。
另一个解决方案正在替换
{{ $data->links() }}
到
{{ $data->appends(Request::except('page'))->links() }}
我想在 laravel 中使用分页,但效果不佳。当我对过滤后的数据进行分页时,它工作正常,但只有第一个 page.The 问题是当我移至第二页时,它将显示所有数据的第二页而不是过滤后的数据。我想要它,所以第二页将显示过滤数据的第二页
在 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
另外请注意,分页功能可以正常工作,但当您想查看第二页时却无法正常工作,因为它以某种方式重置了输入过滤器
感谢您阅读此页,我真的需要这方面的帮助
$data->paginate(15)->withQueryString();
对分页数据使用 withQueryStrings() 方法。
另一个解决方案正在替换
{{ $data->links() }}
到
{{ $data->appends(Request::except('page'))->links() }}