多个搜索字段的分页结果laravel 5.8

时间:2019-03-20 15:03:09

标签: laravel search eloquent pagination laravel-blade

我刚开始使用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

================================================ =============

我希望我的问题清楚且格式正确。预先谢谢你:)

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);