Laravel5.5 or検索で複合条件での検索 (A AND B) OR (C AND D)

(A OR B) AND (C OR D)の記事はけっこうあるのですが
(A AND B) OR (C AND D)のパターンは探したけれど見つからなかったので備忘記録。

$data = Sample::where('a', $word1)->where('b', $word2)->orWhere(function($query) use($word1, $word2){
	$query->where('c', $word1)->where('d', $word2);
})->get();

クロージャーを利用することで可能。
クロージャ内で変数を使う場合useで渡してあげなければいけないので注意が必要。

シェアする

  • このエントリーをはてなブックマークに追加

フォローする