условно где на основе стоимости другой модели - PullRequest
0 голосов
/ 25 марта 2019

У меня есть три модели

Счет

Студия

R_studio_pay

Отношения таковы:

студия hasMany Счет

студия hasOne R_studio_pay

Мне нужно получить счета-> где('recurring', 'single') -> get (), если столбец is_r равен 1 в R_studio_pay, иначе я не хочу, чтобы предложение where.

Я пытался использовать whereHas studio-> wherehas 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')

Но не мог применить условный where.

1 Ответ

0 голосов
/ 25 марта 2019

Вы на правильном пути.Однако вы должны добавить оператор возврата в ваши обратные вызовы.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');
...