Можете ли вы проверить это.
$data=DB::table('time_trans as t')
->join('customers as c','c.cust_id','=','t.cust_id')
->select('t.trans_date', 'c.cust_id', 'c.first_name', 'c.name_name', 't.notes_by', 't.behavioural_notes')
->where(function ($query) use ($request) {
$query->WhereBetween('t.trans_date', [$request->from_date, $request->to_date])
->WhereNotNull('t.behavioural_notes')
->Where('c.cust_id','=',[$request->name]);
})
->orWhereNull([$request->name])
->get();
Также Вам не нужно передавать массив в orWhereNull ([$ request-> name]). Он принимает имя столбца из одной строки.
Отредактировано: -
Глядя на запрос Mysql исправил это
$data=DB::table('time_trans as t')
->join('customers as c','c.cust_id','=','t.cust_id')
->select('t.trans_date', 'c.cust_id', 'c.first_name', 'c.name_name', 't.notes_by', 't.behavioural_notes')
->WhereBetween('t.trans_date', [$request->from_date, $request->to_date])
->where(function ($query) use ($request) {
$query->Where('c.cust_id','=',[$request->name])
->orWhereNull(c.cust_id)
})
->WhereNotNull('t.behavioural_notes')
->get();
Почему вы передаете $ request-> param в orWhereNull, это должно быть имя col. Может быть, отредактированный Querybuilder может помочь вам. Вы можете обновить имя столбца в orWhereNull в соответствии с вашими потребностями.