【发布时间】:2017-05-02 09:16:17
【问题描述】:
我寻求答案,但在我的特殊情况下没有任何问题。 我需要使用 Doctrine 2 加入 contintionnally 表,这取决于我必须加入两个不同外键的字段的值,这里是我的代码:
$qb = $this->entityManager->createQueryBuilder();
$qb ->select('s')
->from('AppBundle:MyTable', 's')
->join('s.firstJoin', 'o')
->join('s.secondJoin', 'd')
->join('AppBundle:joinedView', 'view', Join::WITH,
"(CASE WHEN (d.secondJoinFK = 3)
THEN view.did = d.secondJoinFK
WHEN (d.secondJoinFK = 2)
THEN view.dvid = d.secondJoinFK END)")
->addSelect('d')
->where('s.endDate IS NULL');
但是,有了这个请求,Symfony 告诉我:[Syntax Error] line 0, col 203: Error: Expected Doctrine\ORM\Query\Lexer::T_ELSE, got '='
此外,我不能使用原生查询,因为我使用 PagerFanta 渲染模板,并且 PagerFanta 需要在输入上有 ORM\Query 而不是 ORM\NativeQuery 或其他。
很遗憾,我别无选择,必须在满足这些先决条件的情况下实现此请求。
提前感谢您的帮助,
【问题讨论】:
标签: php mysql join doctrine-orm symfony-2.8