@Vavilov573

Order by retaliation field, laravel?

Есть таблица product, есть таблица city.
Есть city_product. В каждом городе цена на товар может быть разной . Мне надо получить список товаров , и список городов в которых он есть . По умолчанию сортировки по имени товара , поэтому я делаю так $products = Product:with(‘cities’).

Но если выбран фильтр по городу, то надо отфильтровать по цене. Как это лучше сделать ?
джоинить ? Но мне всеравно гало использовать with, что бы получить модель города. Тогда делать и with() и джоин ?
  • Вопрос задан
  • 109 просмотров
Пригласить эксперта
Ответы на вопрос 1
@arab789
Сделать связь в модели city c city_products.
Затем условие, если есть город, дописать запрос:
$products = $products ->whereHas('city_product', function($q) use ($city){
                $q->whereIn('city', $city)->orderBy('price','desc');
            });
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы