2009-11-02 17 views
3

在Symfony項目中使用Doctrine時,我遇到了需要應用一個條件,然後是以下兩個條件之一(兩者都發生是子查詢)。我知道andWhere()和orWhere()函數,但使用這些生成之類的東西時遇到了麻煩: 讓COND1併爲COND2 OR COND3使用(COND2 OR COND3)學說 - 你如何問cond1 AND(cond2 OR cond3)

+1

http://stackoverflow.com/questions/1049617/complex-where-clauses-using-the-php-doctrine-orm讓我做我想做的事。 – m14t 2009-11-02 05:18:37

回答

0

其中

,讓COND1其中COND2或其中COND3

希望這可以讓你開始

+0

這似乎有助於子查詢部分,但似乎沒有幫助將層次結構添加到我的AND/OR操作符,對嗎? – m14t 2009-11-02 04:26:37

0

我沒有聽說過這個工具,但不應該像

... where cond1 andWhere (cond2 orWhere cond3) 

工作嗎?或者不管實際的語法是什麼。請隨時告訴我,如果我錯了,我會刪除它,在一個角落裏偷偷掉;)

2

你可以這樣做蒙山DQL:

$models = Doctrine::getTable('ModelName') 
    ->findByDql(
     'field_one = ? AND (field_two = ? OR field_three = ?)', 
     array('cond_1','cond_2', 'cond_3') 
    ); 

所以$車型將與Doctrine_Collection所有找到的元素。