前提・実現したいこと
Laravelにてlatestで最新の一件を取得しているリレーションに検索条件を当てようとしたら
最新より前のデータも取得してしまいました。
wherehasは全てのレコードを見てしまうというのを他の方の記事で見たのですが、対応できるメソッド等は無いのでしょうか。
※実際のソースと名称は違いますが大まかに下記の様な関係になっています。
【仕様】
latestTestStatusはステータスの更新履歴が入っているテーブルからlatestで最新の一件を取得しています。
Status、StatusCategoryはstatusの種類とstatusの大分類と紐づけるためのリレーションです。
該当のソースコード
// フィルターを追加 if (!is_null($test)) { $test = is_array($test) ? $test: explode(',', $test); $query->whereHas(latestTestStatus.Status.StatusCategory', function ($q) use ($test) { $q->whereIn('id', $test); }); }
0 コメント