Кто-нибудь знает, как получить счет на основе условия в утверждении Doctrine 2 QueryBuilder select ()?
Вот что я пробовал до сих пор ...
Мой первыйпопытка состояла в том, чтобы попробовать count () с помощью eq ().Я получаю сообщение об ошибке «Ожидаются закрывающие скобки, получено равное».
$qb->select($qb->expr()->count($qb->expr()->eq('t.id', '1')))
Затем я попытался count () с помощью has ().Я получаю сообщение об ошибке «Максимальный уровень вложенности функций достигнут».
$qb->select($qb->expr()->count($qb->having('t.id', '1')))
Затем я попытался использовать count () с помощью where () и eq ().Я снова получил «Максимальный уровень вложенности функций достигнут».
$qb->select($qb->expr()->count($qb->where($qb->expr()->eq('t.id', '1'))))
Затем я попробовал эти варианты, используя in ().Они оба дают синтаксическую ошибку «Ожидается FROM, получил» ('
$qb->select($qb->expr()->count($qb->expr()->in('t.id', array(1))))
$qb->select($qb->expr()->count($qb->expr()->in('t.id', 1)))
. Для примеров in () я также попытался передать значение как переменную и через setParameter (), с тем же результатом.
Вот эквивалент MySQL того, что я пытаюсь кодировать в QueryBuilder:
SELECT
SUM(IF(type.id = 1, 1, 0)) AS 'fords',
SUM(IF(type.id = 2, 1, 0)) AS 'hondas'
FROM item
JOIN type ON item.type_id = type.id