SELECT * FROM tbl_data WHERE (column_a = 'hoge' or column_a= 'piyo')
AND (column_b= 'foo' or column_b= 'bar');
こういうSQLを書きたい場合、->whereや->orWhereでどうすれば良いか。
$query = TblDatum::where(function($query){
$query->orWhere('column_a', '=', 'hoge')
->orWhere('column_a', '=', 'piyo');
})->where(function($query){
$query->orWhere('column_b', '=', 'foo')
->orWhere('column_b', '=', 'bar');
});
こうなりました。
'='は省略してもいいです。
変数使うときはuseを使います。
$query = TblDatum::where(function($query) use ($hoge, $piyo) {
$query->orWhere('column_a', '=', $hoge)
->orWhere('column_a', '=', $piyo);
})->where(function($query) use ($foo, $bar) {
$query->orWhere('column_b', '=', $foo)
->orWhere('column_b', '=', $bar);
});