【发布时间】:2019-10-31 09:47:28
【问题描述】:
我正在使用 Symfony 3.4 和 Dcotrine 构建一个应用程序。
以下 SQL 语句在我的数据库中运行良好:
SELECT * FROM `report`
INNER JOIN report_template ON `template_id` = report_template.id INNER JOIN game ON game.id = `game_id`
WHERE (game.refereeAId='Hoehl Luca,SpVgg Altenerding' or game.refereeBId='Hoehl Luca,SpVgg Altenerding')
AND report.creator_id LIKE (CASE WHEN report.template_id=1 THEN 136 ELSE '%' END)
现在我想要 Doctrine 中的这个声明:
$query = $repository->createQueryBuilder('r');
$query->innerjoin('r.game', 'g')
->innerjoin('r.template', 't')
->innerjoin('r.creator', 'c');
$query->andwhere('g.refereeAId = :refereeName or g.refereeBId = :refereeName')
->andWhere('r.approved = :approved')
->andWhere('c.id LIKE CASE WHEN r.template = :template THEN :user ELSE \'%\' END')
->setParameter('approved', true)
->setParameter('refereeName', $refereeID)
->setParameter('template', $templates[1])
->setParameter('user', $user->getId());
我收到以下错误消息:
Notice: Undefined property: Doctrine\ORM\Query\AST\GeneralCaseExpression::$type
我在 LIKE CASE 块中尝试了这么多组合,但没有任何效果。有人知道如何在 Doctrine 中添加这个块吗?
最好的问候 安德烈亚斯
【问题讨论】:
标签: php symfony doctrine symfony-3.4 doctrine-query