Почему этот запрос DQL создает двумерный массив? - PullRequest
0 голосов
/ 01 сентября 2011
$query = $this->getEntityManager()->createQuery('
                SELECT COUNT(s) FROM MyDiaryBundle:TrainingSession s
                WHERE s.status = :completed
                AND s.user = :user')
                ->setParameter('user',$user)
                ->setParameter('completed','confirmed');
$result = $query->getResult();

РЕЗУЛЬТАТ: массив (1) {[0] => массив (1) {[1] => строка (1) "0"}}

И почему во вложенном массиве указывается «1»?

1 Ответ

1 голос
/ 15 ноября 2011

Используйте $ query-> getSingleScalarResult ()

Чтобы ответить на ваш вопрос - насколько я знаю, getResult () будет гидрировать массив сущностей, поэтому первое измерение содержит список сущностей, а второе измерение - это сущность, а также любые дополнительные поля, которые не являются часть объекта (например, результат COUNT (s)).

Элемент вложенного массива, вероятно, имеет ключ '1', поскольку вы не указали псевдоним для COUNT (s), например, COUNT (s) AS sessionCount.

...