web-dev-qa-db-ja.com

Doctrine query-Symfony2からのオブジェクトではなく配列を返します

私はこれを使用しています:

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

私はそれが配列の配列を返すことを保証するはずだと思ったが、それでもオブジェクトの配列を返す。

この種のことができるように、結果全体を配列の配列として返す必要があります(愚かな例ですが、それは私が意味することを説明しています):

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

これによれば EntityRepository classfindAllは複数の引数を取りません。

以下のコードはあなたが望むことをするはずです

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

getArrayResult()の代わりにgetResult()関数を使用することもできます。代わりに、データの配列を返します。

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