環境
Dockerで構築したLEMP環境
・Laravel 6.20.22
・Nginx 1.8
・MySQL 8.0
・PHP 7.4.16
概要
Bladeテンプレートで以下のPaginationリンクを設置し、ページめくりをすると、検索フォームで入力した検索条件が反映されずにページがめくられてしまう
{{$variables->links()}}
同様の事例
・teratail >> laravelでページングの検索条件を別ページに渡って保持する方法
私と同様に検索条件がページネーションに反映されない方のご質問に対して、以下に示す結論で記載するコードに書き換えると良いという回答あり。
→助かります!!!
結論
何も考えずに、ページネーションのリンクを以下のコードに書き換えれば終了。
{{$variables->appends(request()->query())->links()}} //$variablesはご自身の値を使用ください。
意味としては、
・appends()メソッドで配列を渡す
・request()メソッドで、ページで送信されるリクエストを取得する
・request()メソッドの中で、さらにquery()メソッドを使うことでリクエストの中のクエリストリングのみを取得できる。
※クエリストリングとは、urlの中の?名前=○○
のような?
以降の値のこと。
解説は以下の記事が特に参考になりました。
・laravelで検索結果ページネーションを有効にするカンタンな方法
・Laravelマニュアル >> リクエストの取得
・e-Words >> クエリストリング