@jazzus

Как where-фильтровать в With отношения типа ManyToMany?

Пытаюсь сделать запрос:
$products=Product::with(['lists' => function($query)
                        {
                            $query->where('user_id', Auth::id());
                        }]);

Lists – связывается с продуктами через многие ко многим. Выдает ошибку. Т.к. промежуточная таблица. И там много продуктов на один лист возвращает (в ошибке пытается сравнить id продуктов с product_id в промежуточной таблице). А должно возвращать много листов для каждого продукта (т.к. в итоге коллекция продуктов формируется). Как лучше запрос сделать подобного плана? Типа: дай мне все продукты и у каждого продукта покажи мне также with списки, которые принадлежат авторизованному пользователю.
чтобы я в итоге делал $product->lists и получал бы списки авторизованного пользователя в которых есть продукт
  • Вопрос задан
  • 120 просмотров
Решения вопроса 1
@ART_CORP
Hard work
$products = Product::whereHas('lists', function ($query) {
    $query->where('user_id', Auth::id());
})->get();


Такой вариант не работает?
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы