2011-04-12 61 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)。

相關問題