Yii2: разбиение на страницы более сложных запросов агрегированным образом (когда несколько записей принадлежат одной записи)

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. 🙁

Любая помощь очень ценится, поскольку она действительно сводит меня с ума.

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]