Laravel Конструктор запросов получает только элемент с указанием c прогресс - PullRequest
1 голос
/ 06 августа 2020

Добрый день, я пытаюсь получить заказы на товары, для которых указан c прогресс товара.

введите описание изображения здесь

Мой Laravel запрос выглядит так:

return Order::whereHas('products.progress', function (Builder $query) {
    $query->where('progress_id', 100)
        ->orWhereBetween('progress_id', [160, 240]);
      })
    ->with('products.progress')
    ->select('orders.id', 'orders.customer_id', 'orders.created_at')
    ->get();

В запросе я установил where и where Между последним продуктом есть progress_id 50 что не надо загружать в заказ.

Как это сделать? Спасибо за внимание.

1 Ответ

1 голос
/ 06 августа 2020

я думаю, вы хотите Ограничение нетерпеливых нагрузок

, поэтому ваш (где) должен быть при загрузке ...

return Order::with(['products'=>function($query){
        $query->whereHas('progress',function ($query){
            $query->where('progress_id', 100)
                ->orWhereBetween('progress_id', [160, 240]);
        })->with('progress');
    }])
        ->select('orders.id', 'orders.customer_id', 'orders.created_at')
        ->get();
...