2011-04-12 33 views

回答

108

在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 
); 
+0

Thx的答复,NikSen!我最近没有检查Doctrine的网站,所以我没有意识到这一点! – blacktie24 2011-05-20 22:06:04

+1

如果答案实际列出了如何使用这些参数的例子,那么这将非常有用。 – Acyra 2012-10-23 16:29:45

+0

同意,我一直在寻找自己的答案几分钟。 – Fapiko 2012-10-30 07:27:37

3

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

我会编写自己的存储库(如outlined here)并重写findBy()以获取其他参数。您的新实现可以使用查询构建器,或者使用纯老式DQL构建适当的查询。 (我会使用querybuilder,因为你可能只需将$ critera参数传递给QueryBuilder::where()

+0

Thx timdev,这是我最终使用Doctrine 2.0的建议。 – blacktie24 2011-05-20 22:05:27

4

对于DQL您有:QueryBuilder的setMaxResults(整数的maxResults)。

相关问题