我刚开始使用Laravel,并且正在尝试通过适当的分页进行多重搜索。该功能适用于第一页,但不适用于第二或第三页。我认为它没有将结果提供给下一页,但我似乎找不到答案。
================================================ =============
这是我在ClientController中的搜索功能:
public function search(Request $request)
{
$clients = Client::
when($request->nom, function ($query) use ($request) {
$query->where('nom', 'like', $request->nom);
})
->when($request->prenom, function ($query) use ($request) {
$query->where('prenom', 'like', $request->prenom);
})
->when($request->date_debut, function ($query) use ($request) {
$query->where('date_naissance', '>=', $request->date_debut);
})
->when($request->date_fin, function ($query) use ($request) {
$query->where('date_naissance', '<=', $request->date_fin);
})
->when($request->active, function ($query) use ($request) {
$query->where('active', '=', $request->active);
})
->paginate(10);
return view('client.find', ['clients' => $clients]);
}
这是我的路线:
Route::get('search', 'ClientController@find');
Route::post('search', 'ClientController@search')->name('searchpost');
这是我在find.blade.php中显示分页的方法:
<div class="row">
<div class="col-md-12">
@if(!empty($clients))
{{ $clients->links() }}
@endif
</div>
</div>
这是第二页的网址:
/search?page=2
================================================ =============
我希望我的问题清楚且格式正确。预先谢谢你:)
答案 0 :(得分:1)
已解决:
首先,我将路线更改为:
Route::get('search', 'ClientController@search')->name('search');
我的观点是:
<div class="row">
<div class="col-md-12">
@if(!empty($clients))
{{ $clients->appends(request()->except('page'))->links() }}
@endif
</div>
</div>
我希望此解决方案可以帮助其他人:)
答案 1 :(得分:0)
使用:
->paginate(10)->appends($request);