Arrays 返回数组,并通过方法查找

Arrays 返回数组,并通过方法查找,arrays,symfony,doctrine-orm,Arrays,Symfony,Doctrine Orm,我使用的是DoctrinefindBy()方法,但我希望返回数组而不是对象。这是我的疑问: $results = $em ->getRepository('xBundle:x') ->findBy( array(), array('name' => 'ASC') ); 我做了一些研究,发现hydrome\u ARRAY是实现这一点的方法,但我不知道如何将其包含在findBy()方法中 编辑 我的查询实际上是返回对象。我不想在我的

我使用的是Doctrine
findBy()
方法,但我希望返回数组而不是对象。这是我的疑问:

$results = $em
    ->getRepository('xBundle:x')
    ->findBy(
        array(),
        array('name' => 'ASC')
);
我做了一些研究,发现
hydrome\u ARRAY
是实现这一点的方法,但我不知道如何将其包含在
findBy()
方法中

编辑
我的查询实际上是返回对象。我不想在我的存储库中创建任何方法;我只想编辑现有查询,使其返回数组。

将函数插入存储库,然后创建查询生成器

/**
 * @return array
 */
public function getArray()
{
    return $this
        ->createQueryBuilder('x')
        ->orderBy('x.name', 'DESC')
        ->getQuery()
        ->getArrayResult();
}
从控制器访问您的功能

$results = $this->getDoctrine()->getRepository('xBundle:x')->getArray();

更多信息

如果不在Repository中创建方法,则无法执行此操作。为什么明确需要数组而不是对象?无论如何,您可以在php中将对象强制转换为数组(
$array=(array)$object;
)。请参阅官方文件中的“转换为数组”一段,了解值得注意的例外情况:整数属性不可访问;私有变量的类名在变量名前面;受保护变量的变量名前面有一个“”。这些带前缀的值两边都有空字节。这可能会导致一些意外行为: