我正在寻找在laravel查询
select * from `itrs`
where (
(
`master_type_id` = ?
or `master_type_id` = ?
)
or `due_date` < ?
)
and `assigned_to` = ?
但是正在查询
select * from `itrs`
where (
`master_type_id` = ?
or `master_type_id` = ?
and `due_date` < ?
)
and `assigned_to` = ?
从下面的代码
$ItrDays = Itr::where(function($q) {
$q->where('master_type_id', 'Urgent ITR')
->orWhere('master_type_id', 'One time ITR');
})->orWhere(function($q) {
$q->where('due_date', '<', Carbon::now()->addDays(10));
});
$ItrDays->when($admin == 0, function ($q) {
return $q->where('assigned_to',Auth()->user()->id);
});
dd($admin . $ItrDays->toSql());
那么多级分组是可能的吗?在laravel文档中没有任何参考,所以如果有专家知道的话。注意:它是Laravel 8.
提前感谢。
有了解决方案,我们可以在其他闭包中使用闭包,如下所示。
张贴答案,如果它帮助任何人。
$ItrDaysList = Itr::where(function ($q) {
$q->where('due_date', '<', Carbon::now()->addDays(10))
->orWhere(function($q2){
$q2->where('master_type_id', 'Urgent ITR')
->orWhere('master_type_id', 'One time ITR');
});
});
$ItrDaysList->when($admin == 0, function ($q) {
return $q->where('assigned_to',Auth()->user()->id);
});
$ItrDaysList = $ItrDaysList->get();