Я пытаюсь выполнить запрос в доктрине, который содержит что-то вроде этогоОшибка Doctrine при использовании SUM (a.id = 1) в качестве `` dentifier`: Ожидаемая доктрина ORM Query Lexer :: T_CLOSE_PARENTHESIS, got '='
SUM(a.id = 1) as `1`
по некоторым причинам он всегда дает мне следующую ошибку:
[Syntax Error] line 0, col 15: Error: Expected Doctrine\ORM\Query\Lexer::T_CLOSE_PARENTHESIS, got '='
Это код, я использую
$result = $em->getRepository('MyBundle:PlayerAction')
->createQueryBuilder('pa')
->select(array(
'SUM(a.id=1) as `1`,
SUM(a.id=2) as `2`,
SUM(a.id=3) as `3`,
p.playerName,
pa.timestamp'
))
->innerJoin('pa.action', 'a')
->innerJoin('pa.player', 'p')
->where('pa.timestamp > ?1')
->groupBy('p')
->setParameter(1, time() - $time)
->orderBy('p.playerName', 'ASC');
Я думаю, вам не нужны обратные тики в dql как '1' to sum_1, или вы можете посмотреть http://stackoverflow.com/questions/1513384/cumulative-dql-with-doctrine –
Но ошибка указывает на ее сбой на знаке a.id = 1, =. Я думаю, что он ищет конец функции sum, закрывающей скобки) –
Что бы вы ожидали от 'SUM (a.id = 1)'? Что должно делать это заявление? –