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 第一页上的特色结果的主要内容,如果未能解决你的问题,请参考以下文章

mpdf - 第一页上的文本延伸到第二页,与页眉重叠

当 TABLE 跨越多个页面时,如何使第一页上的 TFOOT 显示“继续...”?

由于某种原因,第一页上的背景颜色不正确

如何使用 Twig 在 Stacey v3 中删除第一页和最后一页上的上一个和下一个链接?

CSS 打印,仅在第一页宽度 css 上的标题

在第一页上单击按钮时播放声音到第二个网页