使用Doctrine findBy方法返回数组

时间:2018-04-02 07:08:51

标签: arrays symfony doctrine-orm

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

$results = $em
    ->getRepository('xBundle:x')
    ->findBy(
        array(),
        array('name' => 'ASC')
);

我做了一些研究,发现HYDRATE_ARRAY是这样做的方法,但我不知道如何在findBy()方法中包含它。

修改 我的查询是返回对象。我不想在我的存储库中创建任何方法;我想编辑现有的查询,以便返回数组。

1 个答案:

答案 0 :(得分:2)

将函数转换为存储库,然后创建查询构建器

/**
 * @return array
 */
public function getArray()
{
    return $this
        ->createQueryBuilder('x')
        ->orderBy('x.name', 'DESC')
        ->getQuery()
        ->getArrayResult();
}

从控制器访问您的功能

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

更多信息here