実現したいこと
- whereでレコードを選別した上で、ページネーションをしたい。
前提
■バージョン情報
<PHP>
PHP 8.0.25 (cli) (built: Oct 25 2022 10:49:29) ( ZTS Visual C++ 2019 x64 )
Copyright (c) The PHP Group
Zend Engine v4.0.25, Copyright (c) Zend Technologies
<Laravel>
Laravel Framework 8.83.23
■テーブル構成
テーブル名:AAA
id | ulo_id | mlic_id |
---|---|---|
主キー | インデックス | インデックス |
1 | 65 | 0 |
2 | 93 | 0 |
: | : | : |
456 | 9 | 4 |
457 | 9 | 0 |
発生している問題・エラーメッセージ
■ページネーション処理
- [1] AAA::orderByDesc('id')->paginate(50);
- [2] AAA::where('ulo_id', '=', $ulo_id)->where('mlic_id', '!=', 0)->orderByDesc('id')->paginate(50);
- [3] AAA::query()->where('ulo_id', '=', $ulo_id)->where('mlic_id', '!=', 0)->orderBy('id', 'Asc')->paginate(50);
としたとき、[1]だけページネーションが表示されます。
しかし、[2], [3]は表示されません。
エラーメッセージ は特に出ていませんでいた。
→画面上、ターミナル上、laravel.log上で確認済み
私が使っている環境は、laravel8系ですので、以下のドキュメントを参考にしています。
- https://readouble.com/laravel/8.x/ja/pagination.html
このイントロダクションを見ても、where句が対応していることが伺えます。
<その他、参考資料>
- https://qiita.com/zaburo/items/fe1947ebcf530e8f3773
- https://teratail.com/questions/343726
これら記事により、ページネーションが表示されるためには「orderBy」が必要であることを知ったので、私も↑のソースでちゃんと入れました。それにも関わらず、ページネーションが表示されない原因が分かりません。
どうすれば、where条件でレコードを選別した上で、ページネーションを表示することができますでしょうか?

回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。