根据其他模型的价值而定

时间:2019-03-25 12:45:34

标签: php laravel eloquent eloquent--relationship

我有三种型号

发票

工作室

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')

但是不能在有条件的地方应用。

1 个答案:

答案 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');