例えば「日付が 2019/01/01」かつ「 report_name_1に何か入っている または report_name_2に何か入っている または report_name_3に何か入っている」
という条件はクロージャを使って以下のように記述できます。
$data_loop = \App\Report::where('kigen_date','=','2019-01-01')
->where(function($query) {
$query->orWhereNotNull('report_name_1')
->orWhereNotNull('report_name_2')
->orWhereNotNull('report_name_3');
})
->get();
ローカルスコープを使うのもおすすめです
スコープを使うと SQL文で言う所の 「AND ( 何かしらのSQL文 )」 を発行することができます。
例えば次のような単純なSQL文もスコープにしてしまうと簡単です。
AND ( feed_id = 100 )
モデルファイル( 例:User モデルの場合 ) app/User.php
/**
* ローカルスコープ:inFeed:フィードIDに限定するスコープ
*/
public function scopeInFeed($query, $feed_id)
{
return $query->where('feed_id','=', $feed_id);
}
コントローラファイルに記述
$model->inFeed( 100 ); // ローカルスコープ適用