2016-11-15 76 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