@turindd

Как правильно построить запрос на laravel?

Всем привет.
Заранее благодарен за любой ответ!

есть КАТЕГОРИИ
у КАТЕГОРИЙ(один) есть ТОВАРЫ(много)
у ТОВАРОВ(много) есть МАГАЗИН(один)
у МАГАЗИНОВ(один) есть АДРЕС_ГОРОД(много)

КАТЕГОРИЙ=>ТОВАРЫ=>МАГАЗИНОВ=>АДРЕС_ГОРОД

необходимо выбрать все КАТЕГОРИИ, у которых:
- есть хоть 1 ТОВАР // has
- у этого ТОВАРА должен быть МАГАЗИН в котором АДРЕС существует в москве

Пробовал построить запрос не получается, в документации есть только метод hasManyThrough
который прыгает через 1ну таблицу, а тут их больше. Или я чет подтупливаю)
Помогите построить запрос!

Еще вопрос: если у меня будет 1млн товаров, и 1000 магазинов, нормально ли будет обрабатываться запрос или нужно искать другие ФИЧИ:
- сохранять id_город в json в ТОВАРАХ
- сохранять id_город в json в МАГАЗИНЕ

Всем спасибо!
  • Вопрос задан
  • 70 просмотров
Пригласить эксперта
Ответы на вопрос 1
@turindd Автор вопроса
$result = Category::where('on_off', 1)
->has('product')

->whereHas('product', function ($query) use ($city_one) {
$query->where('on_off', 1)

->whereHas('shop', function ($query) use ($city_one) {
$query->where('on_off', 1)

->whereHas('shop_map_point', function ($query) use ($city_one) {
$query->where('city_id', $city_one->id);
});
});
})
->get();
Ответ написан
Ваш ответ на вопрос

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

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