Arrays 返回数组,并通过方法查找
我使用的是DoctrineArrays 返回数组,并通过方法查找,arrays,symfony,doctrine-orm,Arrays,Symfony,Doctrine Orm,我使用的是DoctrinefindBy()方法,但我希望返回数组而不是对象。这是我的疑问: $results = $em ->getRepository('xBundle:x') ->findBy( array(), array('name' => 'ASC') ); 我做了一些研究,发现hydrome\u ARRAY是实现这一点的方法,但我不知道如何将其包含在findBy()方法中 编辑 我的查询实际上是返回对象。我不想在我的
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;
)。请参阅官方文件中的“转换为数组”一段,了解值得注意的例外情况:整数属性不可访问;私有变量的类名在变量名前面;受保护变量的变量名前面有一个“”。这些带前缀的值两边都有空字节。这可能会导致一些意外行为: