laravel8のhasmany(リレーション)のwhere句を、検索条件に従って動的に変更したい!(親whereと子whereのAND検索がしたい!)

laravel8のhasmany(リレーション)のwhere句を、検索条件に従って動的に変更したい!(親whereと子whereのAND検索がしたい!)

モデルオブジェクトが確定していれば、簡単にwhere句が付けられるんだけど、SQL発行する前のqueryでやりたいんだよね(何十万件もレコードがあるので)

whereHasだと遅いし、子where条件に引っかかった親レコードの紐づく子レコードが全部取得されてしまうから、子whereになっていない。

hasMany(子モデル)->where()を、検索条件に従って動的に変更したい!

参考URL
https://stackoverflow.com/questions/39448066/laravel-eloquent-dynamically-defined-relationship

1, 親モデルに、traitを追加

2. Controllerに記述

思ったよりも綺麗に書けた。
デフォで出来るかと思ったけど、あんまり需要がないのかな?