2016-01-22 11 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 сущности и ID из сращенного лица BET если они есть (иначе я получаю нуль) в bId

В моей сущности BET У меня есть пользователь поля.

Как получить строки с betId имеет значение null И если 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()) 

я удалил «С» аргументами, теоретически они не нужны, если вы определили ваше отображение правильно. Не стесняйтесь возвращать их, если хотите или нужно.

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