Лучше использовать DQL для получения столбца столбца или получения коллекции, а затем подсчета?

Я абсолютно уверен, что DQL будет способ пойти, но мне интересно, если Doctrine, я использую Doctrine 2, может каким-то образом вернуть число строк. Я не буду использовать сами строки, мне просто нужен счет.

Ответы

Ответ 1

Я новичок в Doctrine2, но похоже, что вы можете просто сделать это:

$query = $em->createQuery('SELECT COUNT(u.id) FROM Entities\User u');
$count = $query->getSingleScalarResult();

Источник (с использованием функций Agregate): http://www.doctrine-project.org/docs/orm/2.0/en/reference/dql-doctrine-query-language.html#dql-select-examples

Разрешенные агрегированные функции: http://www.doctrine-project.org/docs/orm/2.0/en/reference/dql-doctrine-query-language.html#aggregate-functions

Ответ 2

Вот еще одна интересная точка зрения об использовании агрегированных функций в DQL

http://doctrine-orm.readthedocs.org/en/latest/cookbook/aggregate-fields.html

Возможно, вам удастся создать конкретный запрос для получения совокупного значения. В этом случае полные поля являются хорошей альтернативой.