Вот что я пытался сделать:
$pipes = Pipe::with('items')
->where([
'user_id' => $request->get('id'),
'closed' => false,
])
->whereHas('items', function($query) {
$query->where(function($q) {
$q->where('payment_id', 'exists', false)
->where('closed', false)
->where('locker', 'exists', false);
})
->orWhere(function($qu) {
$qu->where('payment_id', 'exists', true)
->where('closed', false)
->where('locker', 'exists', false)
->where('failed_to_pay', true);
});
})->get();
Мне нужно применить две разные процедуры в моем whereHas для 'items':
->where('payment_id', 'exists', false)
->where('closed', false)
->where('locker', 'exists', false);
ИЛИ
/* The principal difference is 'If payment_id exist, i take where failed_to_pay is true' */
->where('payment_id', 'exists', true)
->where('closed', false)
->where('locker', 'exists', false)
->where('failed_to_pay', true);
Мой вопрос: как это сделать? Большое спасибо!