如何限制在教义2中的结果集大小?

如果我正在使用respository类的findBy方法,我怎样才能限制结果集的大小?

在Doctrine 2.1方法中,EntityRepository#findBy()现在接受用于sorting,限制和偏移的附加参数。

查看完整列表2.1中的新function (404) findBy和findOneBy的相关链接

例:

public function findBy(array $criteria, array $orderBy = null, $limit = null, $offset = null) 

用法:

 $product = $repository->findBy( array('name' => 'foo'), array('price' => 'ASC'), $myLimit, $myOffset ); 

对于DQL你有:QueryBuilder setMaxResults(integer maxResults)。

通用库类的findBy()方法不支持这一点。

我将编写自己的存储库(如此处所述 )并覆盖findBy()以获取其他参数。 您的新实现可以使用查询生成器,也可以使用plain-old-DQL来构build正确的查询。 (我会使用querybuilder,因为你可能只是将$ critera param正确传递到QueryBuilder :: where() )