2016-11-15 2 views
0

Я хотел бы получить всю Entity только в том случае, если параметр является частью этого объекта или если параметр сущности пуст.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_actived ИЛИ, если 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_activatedManyToMany или OneToMany.

Если это так, то вам нужно добавить:

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

затем проверить, если ca IS NULL

Смежные вопросы