2016-11-15 53 views
0

我想僅在參數是此實體中的一部分或者實體參數爲空時才獲取所有實體。Doctrine get non null ArrayCollection

我有這樣的:

$qb = $this->createQueryBuilder('cc')     
->join('Toblor\Entity\Paramount', 'p') 
->select('p') 
->Where(':company MEMBER OF p.company_activated') 
->setParameter('company ', $company) 

return $qb->getQuery()->getResult(); 

而且它正在做的工作很棒。但是現在,如果company_activated爲company_activated或者company_activated爲空,我希望獲得相同的結果。我已經試過了

->Where('(:company MEMBER OF p.company_activated OR p.company_activated IS NULL)') 

這觸發我這個錯誤

Error: Invalid PathExpression. StateFieldPathExpression or SingleValuedAssociationField expected. 

有沒有一種簡單的方法做這件事情?因爲我需要在很多領域實施。

感謝您

+0

沒有你想添加一個'orWhere'條件,而不是在同一個混合的2個條件的'where' ? – Veve

+0

是的,但我不想幹涉查詢的其餘部分(這是相當大的) –

+1

並用'$ qb-> expr() - > orX'? – Veve

回答

0

是與company_activatedManyToManyOneToMany你們的關係。

如果是這種情況,你需要添加:

->leftJoin('p.company_activated', 'ca') 

然後檢查是否ca IS NULL