use*_*356 16 php doctrine symfony doctrine-orm
我正在使用这个:
$this->getDoctrine()->getRepository('MyBundle:MyEntity')->findAll(array(), Query::HYDRATE_ARRAY);
Run Code Online (Sandbox Code Playgroud)
我认为应该确保它返回一个数组的数组,但它仍然返回一个对象数组.
我需要将整个结果作为数组的数组返回,这样我才能做到这一点(愚蠢的例子,但它解释了我的意思):
<?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']; ?>
Run Code Online (Sandbox Code Playgroud)
Tho*_*ire 42
根据此EntityRepository类,findAll不要使用多个参数.
下面的代码应该做你想要的
$result = $this->getDoctrine()
->getRepository('MyBundle:MyEntity')
->createQueryBuilder('e')
->select('e')
->getQuery()
->getResult(\Doctrine\ORM\Query::HYDRATE_ARRAY);
Run Code Online (Sandbox Code Playgroud)
小智 25
您也可以使用该getArrayResult()功能代替getResult().它返回一个数据数组:
$query = $em->createQuery("SELECT test FROM namespaceTestBundle:Test test");
$tests = $query->getArrayResult();
Run Code Online (Sandbox Code Playgroud)