如果我使用的是repository类的findBy方法,我如何限制结果集的大小?
findBy
t2a7ltrp1#
在Doctrine 2.1中,方法EntityRepository#findBy()现在接受用于排序、限制和偏移的附加参数。文件:使用对象-按简单条件查询示例:
EntityRepository#findBy()
public function findBy(array $criteria, array $orderBy = null, $limit = null, $offset = null)
用法:
$myLimit = 30; $myOffset = 20; $product = $repository->findBy( array('name' => 'foo'), array('price' => 'ASC'), $myLimit, $myOffset );
ylamdve62#
对于Doctrine Query Language,您有:
QueryBuilder::setMaxResults(integer $maxResults)
vatpfxk53#
通用存储库类的findBy()方法不支持此操作。我将编写您自己的存储库(如此处所述)并覆盖findBy()以获取额外的参数。您的新实现可以使用查询构建器或普通的旧DQL来构建适当的查询。(我将使用querybuilder,因为您可能只需将$critera参数直接传递到QueryBuilder::where())
3条答案
按热度按时间t2a7ltrp1#
在Doctrine 2.1中,方法
EntityRepository#findBy()
现在接受用于排序、限制和偏移的附加参数。文件:使用对象-按简单条件查询
示例:
用法:
ylamdve62#
对于Doctrine Query Language,您有:
vatpfxk53#
通用存储库类的findBy()方法不支持此操作。
我将编写您自己的存储库(如此处所述)并覆盖findBy()以获取额外的参数。您的新实现可以使用查询构建器或普通的旧DQL来构建适当的查询。(我将使用querybuilder,因为您可能只需将$critera参数直接传递到QueryBuilder::where())