Eloquentでの複数条件検索
Eloquentのリレーションで複数条件検索
LaravelのEloquent?のクエリビルダにてリレーションを用いたテーブルの結合を行っています。
発生している問題・エラー
仮にブログアプリを開発していて、userテーブルとpostテーブルを結合しているとしましょう。
問題は、結合元のuserテーブルにはwhere句が効くのですが、postテーブルにはwhere句が効きません。
該当するソースコード
実際のコードから一部変更しています。
カラムA、Bはuser、postテーブル両方にあるものとします。
$result = User::where('columnA', $columnA)
->where('columnB', true)
->whereHas('Post', function($query) use ($columnA) {
$query->where('columnA', "{$columnA}")
->where('columnB', true);
})->with('Post')
->get();
自分で試したこと
実行される前のSQL文を画面に出力すると、inner joinなどではなく、exists句が使用されており、postテーブルに対するwhere句が効いていませんでした。
言葉足らずなしつもんですが、有識者の方いらっしゃいましたら回答お願いいたします。
0