Eloquent laravel запрос условно с двумя разными процедурами - PullRequest
0 голосов
/ 31 января 2020

Вот что я пытался сделать:

$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);

Мой вопрос: как это сделать? Большое спасибо!

...