LoginSignup
23
17

More than 1 year has passed since last update.

Laravelで検索条件をページネーションに反映する方法

Last updated at Posted at 2021-04-15

環境

Dockerで構築したLEMP環境
・Laravel 6.20.22
・Nginx 1.8
・MySQL 8.0
・PHP 7.4.16

概要

Bladeテンプレートで以下のPaginationリンクを設置し、ページめくりをすると、検索フォームで入力した検索条件が反映されずにページがめくられてしまう

{{$variables->links()}}

同様の事例

teratail >> laravelでページングの検索条件を別ページに渡って保持する方法
私と同様に検索条件がページネーションに反映されない方のご質問に対して、以下に示す結論で記載するコードに書き換えると良いという回答あり。
→助かります!!!

結論

何も考えずに、ページネーションのリンクを以下のコードに書き換えれば終了。

blade.php
{{$variables->appends(request()->query())->links()}} //$variablesはご自身の値を使用ください。

意味としては、
・appends()メソッドで配列を渡す
・request()メソッドで、ページで送信されるリクエストを取得する
・request()メソッドの中で、さらにquery()メソッドを使うことでリクエストの中のクエリストリングのみを取得できる。
※クエリストリングとは、urlの中の?名前=○○のような?以降の値のこと。

解説は以下の記事が特に参考になりました。
laravelで検索結果ページネーションを有効にするカンタンな方法
Laravelマニュアル >> リクエストの取得
e-Words >> クエリストリング

23
17
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
23
17