Я создаю приложение с 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?
С уважением, Андреас