如果我正在使用存储库类的findBy方法,我该如何限制结果集的大小?
答案 0 :(得分:124)
在Doctrine 2.1方法中,EntityRepository#findBy()现在接受有关排序,限制和偏移的其他参数。
see full list new features in doctrine 2.1 (404)
Relevant link to findBy and findOneBy
示例:
public function findBy(array $criteria, array $orderBy = null, $limit = null, $offset = null)
用法:
$product = $repository->findBy(
array('name' => 'foo'),
array('price' => 'ASC'),
$myLimit,
$myOffset
);
答案 1 :(得分:4)
对于Doctrine Query Language,你有:
QueryBuilder::setMaxResults(integer $maxResults)
答案 2 :(得分:3)
通用存储库类的findBy()方法不支持此功能。
我会编写您自己的存储库(作为outlined here)并覆盖findBy()以获取其他参数。您的新实现可以使用查询构建器或plain-old-DQL来构建正确的查询。 (我会使用querybuilder,因为你可以直接将$ critera param传递给QueryBuilder::where())