whereHasにより、リレーション先の情報を元に絞り込みができると思います。
controller1
1 $user = User::with(['posts' => function($query){ 2 $query->where('created_at', '>', '2018-09-03'); 3 }])->get();
またeager loadでも同様の処理ができそうな記述がドキュメントにあります。
controller2
1 $users = App\User::with(['posts' => function ($query) { 2 $query->where('title', 'like', '%first%'); 3 }])->get();
eager loadについてのざっくりしたイメージですが、
「事前にリレーション先まで取ってくるから軽くなる」
みたいなイメージです。
質問内容としては、
1、controller2の記述方法で、リレーション先で絞り込めるのか。
2、僕の環境ではcontroller2は上手く動作しなかったが、これはリレーション先の情報で絞り込んでる訳ではないのか。
3、もし1ができるならcontroller1とcontroller2のどちらで絞り込むのが良いのか?
ざっくりとした質問ですが、よろしくお願いいたします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。