0

假设我有一个有 100 件商品的在线商店,并使用 KNPPaginatorBundle 来处理每页 10 件商品的分页器,100 件商品中有 5 件是特色商品。每个项目都有一个布尔字段“特色”,它告诉它是否应该在非特色项目之前。有没有办法用捆绑包处理这个问题?

目前,我有一个包含 5 个特色项目的数组,另一个包含 100 个非特色项目的数组,我通常使用捆绑包遍历第一个数组和第二个数组,但这种方法在第一页给了我 15 个结果。因此,如果我可以告诉捆绑包在第 1 页返回 5 个项目,在接下来的 10 页返回第 10 个项目,那将是理想的选择。

4

1 回答 1

1

首先创建带有“特色”项目的查询的最佳方式。(订购?)。

如果由于某种原因您无法创建此类查询,但您有项目,则可以将集合直接传递给分页:

$collection = new \Doctrine\Common\Collections\ArrayCollection($featured);
foreach ($items as $item) {
    $collection->add($item);
}

$pagination = $paginator->paginate(
    $collection,
    $this->get('request')->query->get('page', 1)/*page number*/,
    10/*limit per page*/
);
于 2014-06-25T19:53:18.297 回答