【Laravel / Paginate】ページネーションで検索パラメータを保持する

えびさん

ページ遷移した場合も、検索パラメータは保持したい場合はappendsを使う

Controller

public function index(Request $request)
{
  // 指定されたパラメータ取得
  $params = $request->all();
  // ユーザーを検索取得
  $users = $this->userRepository->search($params);
  // ユーザーに加えて、指定されたパラメータもViewに渡す
  return view('search.index', compact('params', 'users'));
}

View

<!-- 一覧表示 -->
@foreach ($users as $user)
<!-- (...省略) -->
@endforeach
<!-- /一覧表示 -->

<!-- ページネーション: appendsでパラメータを指定する -->
{{ $users->appends(['page_count' => $params['page_count'] ?? 20, 'type' => $params['type'] ?? ''])->links() }}
<!-- /ページネーション -->

パラメータをまるっと引き継ぎたい場合

  • パラメータを選別せずに全て渡す場合はController側のparamsの受け渡し無しで下記で行ける
<!-- ページネーション: appendsでパラメータを指定する -->
{{ $users->appends(request()->query())->links() }}
<!-- /ページネーション -->

ページネーションをカスタマイズしたい場合はこちら

\ 案件のご依頼・ご相談はこちらから /