2016-11-04 35 views
0

就像标题所说,我试图对可用于由KnP Paginator分页的结果实施限制。对我的查询设置限制并不会产生任何效果,我假设这是因为分页程序对查询设置了自己的限制,以便每页显示正确的行数。我的用例很简单:用户在UI中应用一些过滤器(字段必须等于X,顺序等),代码将这些过滤器转换为查询生成器的输入。限制是允许用户说'给我显示[插入条件]为真的前100个条目,按[字段]排序'。目前对于KnP Paginator来说似乎不可能,除非我在文档中遗漏了某些东西。需要设置KnP Paginator的最大结果限制吗?

+0

你发现'knp_paginator'服务的'paginate'方法的第三个参数? – malcolm

+0

绝对已经在使用中。我正在寻找的是一种限制较大数据集然后对其进行分页的方法。换句话说,一种告诉paginator我只想显示500个结果的方式,但仍然给我20每个页面高达500. 从我可以告诉这是目前不可能,所以我已经实施了一个UI解决方法停止在达到预期限制后显示结果。 – TheGremlyn

+0

使用自定义'count'查询:https://github.com/KnpLabs/KnpPaginatorBundle/blob/master/Resources/doc/manual_counting.md – malcolm

回答

0

使用自定义count查询:

<?php 
$count = 500; 

$query = $entityManager 
    ->createQuery('SELECT a FROM AcmeMainBundle:Article a') 
    ->setHint('knp_paginator.count', $count) 
; 
$pagination = $paginator->paginate($query, $page, 10); 
+0

所以这似乎几乎工作。如您所描述的那样添加计数提示会限制可用页面的总数,但是例如,我将其设置为25,每页20个,预计在页面= 2上看到5个结果,但是我在第二页上获得了全部20个结果。任何想法为什么这可能是? – TheGremlyn

相关问题