В 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
вернет количество записей, соответствующих вашему запросу.
Если у вас остаются вопросы или возникли проблемы, не стесняйтесь задавать их.