Почему в Symphony 2 Doctrine при запросах через createQueryBuilder или createQuery с getResult или getArrayResult возвращает только одну запись БД?

В Symfony 2, при использовании Doctrine для запросов через createQueryBuilder или createQuery, методы getResult и getArrayResult по умолчанию возвращают только одну запись из базы данных. Это происходит потому, что эти методы предназначены для выполнения запросов, которые ожидают только один результат.

Однако, если вы хотите получить все записи из базы данных, вы можете использовать методы getResult и getArrayResult с параметром HYDRATE_ARRAY. Например:

$repository = $this->getDoctrine()->getRepository(YourEntity::class);
$query = $repository->createQueryBuilder('e')
    ->getQuery();

$results = $query->getResult(DoctrineORMQuery::HYDRATE_ARRAY);

В этом примере, метод getResult будет возвращать массив со всеми записями из базы данных.

Если вы хотите просто получить количество записей, соответствующих вашему запросу, вы можете использовать метод getSingleScalarResult. Например:

$repository = $this->getDoctrine()->getRepository(YourEntity::class);
$query = $repository->createQueryBuilder('e')
    ->select('COUNT(e)')
    ->getQuery();

$count = $query->getSingleScalarResult();

В этом примере, метод getSingleScalarResult вернет количество записей, соответствующих вашему запросу.

Если у вас остаются вопросы или возникли проблемы, не стесняйтесь задавать их.