返回数组,而不是来自 Doctrine 查询的对象 - Symfony2

2022-01-16 00:00:00 php symfony doctrine doctrine-orm

我正在使用这个:

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

我认为应该确保它返回一个数组的数组,但它仍然返回一个对象数组.

I thought that should ensure it returns an array of an array, but it still returns an array of objects.

我需要将整个结果作为数组的数组返回,这样我就可以做这种事情(愚蠢的例子,但它解释了我的意思):

I need the whole result returned as an array of an array so I can do this kind of thing (silly example, but it explains what I mean):

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

推荐答案

根据这个EntityRepository 类,findAll 不接受多个参数.

According to this EntityRepository class, findAll don't take multiple arguments.

下面的代码应该做你想做的事

The code below should do what you want

$result = $this->getDoctrine()
               ->getRepository('MyBundle:MyEntity')
               ->createQueryBuilder('e')
               ->select('e')
               ->getQuery()
               ->getResult(DoctrineORMQuery::HYDRATE_ARRAY);

相关文章