J'utilise ceci:
$this->getDoctrine()->getRepository('MyBundle:MyEntity')->findAll(array(), Query::HYDRATE_ARRAY);
Je pensais que cela devrait garantir qu'il renvoie un tableau d'un tableau, mais il renvoie toujours un tableau d'objets.
J'ai besoin que le résultat entier soit renvoyé sous forme de tableau d'un tableau afin que je puisse faire ce genre de chose (exemple stupide, mais il explique ce que je veux dire):
<?php
$result = $this->getDoctrine()->getRepository('MyBundle:MyEntity')->findAll('return-an-array');
?>
This is the age of the person at the 5th record: <?php echo $result[4]['age']; ?>
Selon cela classe EntityRepository , findAll
ne prend pas plusieurs arguments.
Le code ci-dessous devrait faire ce que vous voulez
$result = $this->getDoctrine()
->getRepository('MyBundle:MyEntity')
->createQueryBuilder('e')
->select('e')
->getQuery()
->getResult(\Doctrine\ORM\Query::HYDRATE_ARRAY);
Vous pouvez également utiliser la fonction getArrayResult()
au lieu de getResult()
. Il renvoie un tableau de données à la place:
$query = $em->createQuery("SELECT test FROM namespaceTestBundle:Test test");
$tests = $query->getArrayResult();