Yii2:以聚合方式分页更复杂的查询结果(当多个记录属于一条记录时)

时间:2014-09-28 11:59:35

标签: php pagination yii2

Yii2:

我正在使用Yii2开发一个eshop。我有一个DB查询返回如下记录:

 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

我需要所有这些数据。更精确的是,我需要为每个Id创建一个缩略图,但需要将其他值放入缩略图中,以便用户知道可用的大小和颜色。

但事实是,我只需要在页面上竖起大拇指。所以我需要设置分页,这似乎是个问题。我想到的唯一解决方案是运行两个查询:

SELECT DISTINCT Id from Products
SELECT * FROM Products

所以我用于分页的第一个查询,因为我在页面上总是有15个产品。然后我得到第二个查询的结果,其中包含我找到的所有产品(基于标准 - 查询只是一个例子)。然后,当打印每个productId的缩略图时,我遍历所有产品并使用foreach循环搜索匹配的记录。

一切正常,但问题在于,当我为每个产品做一个循环循环时,它是太麻烦了,我觉得它并不是真正最有效和正确的方式。

我还尝试使用 andFilterWhere 方法调整“所有产品”查询,但它不起作用,因为它在下次迭代中将过滤器保留在查询中,即使我克隆了ActiveDataProvider宾语。 :(

任何帮助都非常感激,因为它让我疯狂。

0 个答案:

没有答案