2016-01-22 24 views
1

我有這樣一個查詢添加條件:主義查詢builde在

$qb->select('m.id', 'b.id as bId'); 
    $qb->leftJoin('AppBundle\Entity\Bet', 'b', \Doctrine\ORM\Query\Expr\Join::WITH, 'm.id = b.match'); 
    //$qb->where('b.user = :user'); 
    //$qb->setParameters(array('user' => $user->getId())); 

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

與此查詢,我可以得到m實體的所有行,並加入實體BETID如果存在(否則我得到空)的bId

在我的實體BET我有一個字段用戶。

如何檢索行betId爲空且如果betId不爲空,請檢查b.user = :user

回答

1

嘗試此查詢,這應該做的伎倆:

$qb->select('m.id', 'b.id as bId'); 
    ->leftJoin('AppBundle\Entity\Bet', 'b') 
    ->where('b.id = NULL') 
    ->orWhere('b.user = :user') 
    ->setParameter('user', $user->getId()) 

我去掉了「WITH」的論點,在理論上是不需要的,如果你正確定義的映射。如果您想要或需要,請隨時放回。