我有三种型号
发票
工作室
R_studio_pay
关系如下
工作室有很多发票
工作室有一个 R_studio_pay
如果R_studio_pay中的is_r列为1,我需要获取发票-> where('recurring','single')-> get(),否则我不希望where子句。
我尝试使用whereHas studio->哪里R_studio_pay但有条件的地方无法完成。
$invoices = invoice::with('studio')->whereHas('studio', function($query) {
$query->whereHas('r_studio_pay', function($query) {
$query->where('is_r', 1);
});
})->where('recurring', 'single')
但是不能在有条件的地方应用。
答案 0 :(得分:0)
您处在正确的轨道上。但是,您应该在回调中添加return语句。 return $query->where('is_r', 1);
,而不是$query->where('is_r', 1);
。尝试下面的代码。
$invoices = invoice::with('studio')->whereHas('studio', function($query){
return $query->whereHas('r_studio_pay', function($query){
return $query->where('is_r', 1);
});
})->where('recurring', 'single');