Yii2:
Я разрабатываю интернет-магазин с использованием Yii2. У меня есть запрос к БД, который возвращает такие записи:
Id | Name | Size | Color
---------------------------------
01 | NY Jacket | L | light blue
01 | NY Jacket | XL | light blue
01 | NY Jacket | XL | dark blue
02 | LA Jacket | M | yellow
02 | LA Jacket | L | yellow
02 | LA Jacket | XXXL | yellow
Мне нужны все эти данные. Более точно, мне нужно создать одну миниатюру для каждого идентификатора, но нужно поместить другие значения в миниатюру, чтобы пользователь знал, какие размеры и цвета доступны.
Дело в том, что мне нужно всего 15 пальцев на странице. Так что мне нужно установить нумерацию страниц, что кажется проблемой. Единственное решение, которое пришло мне в голову, — запустить два запроса:
SELECT DISTINCT Id from Products
SELECT * FROM Products
Итак, первый запрос, который я использую для разбивки на страницы, работает так, как будто у меня всегда 15 товаров на странице. Затем я получил результат из второго запроса, который содержит все продукты, которые я нашел (в зависимости от критериев — запрос является лишь примером). Затем при печати эскиза для каждого productId я перебираю все товары и ищу соответствующие записи, используя цикл foreach.
Все работает, но проблема в том, что когда я делаю цикл foreach для каждого продукта, это sooooooo sloooooooooow, и я думаю, что это не самый эффективный и правильный способ.
Я также пытался настроить запрос «все продукты», используя andFilterWhere метод, но он не работает, так как он сохраняет фильтр в запросе на следующих итерациях, хотя я клонировал объект ActiveDataProvider. 🙁
Любая помощь очень ценится, поскольку она действительно сводит меня с ума.
Задача ещё не решена.
Других решений пока нет …