KNPPaginatorBundle 第一页上的特色结果
Posted
技术标签:
【中文标题】KNPPaginatorBundle 第一页上的特色结果【英文标题】:KNPPaginatorBundle Featured Results on First Page 【发布时间】:2014-06-25 18:02:10 【问题描述】:假设我有一个有 100 件商品的在线商店,并使用 KNPPaginatorBundle 来处理每页 10 件商品的分页器,100 件商品中有 5 件是特色商品。每个项目都有一个布尔字段“特色”,它告诉它是否应该在非特色项目之前。有什么办法可以通过捆绑包处理这个问题?
目前,我有一个包含 5 个特色项目的数组和另一个包含 100 个非特色项目的数组,我通常使用捆绑包遍历第一个数组和第二个数组,但这种方法在第一页给了我 15 个结果。因此,如果我可以告诉捆绑包在第 1 页返回 5 件商品,在接下来的 10 页返回 10 件商品,那将是理想的选择。
【问题讨论】:
【参考方案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*/
);
【讨论】:
这样就行了!我考虑了 orderBy,但可能会出现我有 20 个特色项目的情况,但无论如何必须在前面显示 5 个,其余的作为常规项目。谢谢!以上是关于KNPPaginatorBundle 第一页上的特色结果的主要内容,如果未能解决你的问题,请参考以下文章
当 TABLE 跨越多个页面时,如何使第一页上的 TFOOT 显示“继续...”?