Как построить запрос к базе данных для фильтрации товаров каталога по характеристикам товаров?

Каталог товаров – интернет магазина на Laravel, имеет следующие таблицы базы данных:
66335ae31e2f8503821581.jpeg
  • ‘products’ - данные товаров каталога,
  • “properties” – данные, названия характеристик товаров,
  • “products_properties” - связывающая таблица, связью «Многие ко Многим», с pivot полем value для хранения значений характеристик товаров.

Форма фильтра состоит из checkbox-ов,
66335db9253c7761298295.jpeg
а запрос на фильтрацию данных уходит со следующими Get -параметрами:
http://localhost/category/bricks?2=Россия,Латвия&3=Одинарный%20(1НФ),Фасадный

где “Id – характеристики товаров” => “массив значений [Россия,Латвия]”

Запутался как построить запрос к базе данных для получения фильтруемых значений,
В данные для фильтрации от клиента приходят в виде массива, к примеру:
$arrParams = [
            1 => "LODE,ОАО Кеармика",
            4 => "Лицевой,Рабочий",
            7 => "Красный,Коричневый,Светлый",
            "price" => "467,1470"
        ];

Где ключ – ID характеристики => значение - массив выбранных значений для фильтрации товаров.

Прош подсказать: как построить Query Builder и вытащить из базы данных товары по характеристикам, по id и значениям характеристик товаров?

Буду признателен за любую информацию, гайды с примерами.
  • Вопрос задан
  • 67 просмотров
Пригласить эксперта
Ваш ответ на вопрос

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

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