2013-07-06 17 views
13

używam to:Powrót tablicą, nie sprzeciw od Doctrine zapytania - Symfony2

$this->getDoctrine()->getRepository('MyBundle:MyEntity')->findAll(array(), Query::HYDRATE_ARRAY); 

Myślałem, że powinien upewnić się, że zwraca tablicę tablicy, ale nadal zwraca tablicę obiektów.

muszę cały wynik zwracany jako tablica tablicy, więc mogę zrobić tego rodzaju rzeczy (głupi przykład, ale wyjaśnia, co mam na myśli):

<?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']; ?> 

Odpowiedz

40

Według tego EntityRepository class, findAll don nie przyjmuj wielu argumentów.

Poniższy kod powinien robić to, co chcesz

$result = $this->getDoctrine() 
       ->getRepository('MyBundle:MyEntity') 
       ->createQueryBuilder('e') 
       ->select('e') 
       ->getQuery() 
       ->getResult(\Doctrine\ORM\Query::HYDRATE_ARRAY); 
+0

Mam ten sam porblem i daje mi ten błąd "Błąd: klasa" apb \ appassBundle \ Controller \ Doctrine \ ORM \ Query "nie znaleziono w kontrolerze" – numerah

+0

Użyj wiodącego ukośnika w '\ Doctrine \ ORM \ Query ' –

+0

thanx również działało, gdy dodałem klasę użycia i po prostu dodam zapytanie :: HYDRATE_ARRAY – numerah

24

Można również użyć funkcji getArrayResult() zamiast getResult(). Zwraca tablicę danych zamiast:

$query = $em->createQuery("SELECT test FROM namespaceTestBundle:Test test"); 
$tests = $query->getArrayResult(); 
0

Zastosowanie getScalarResult(), aby uzyskać wynik z tablicy obiektów obcinane do strun.

Powiązane problemy