如何将Doctrine结果集转换为数组?

jin*_*ini 1 php doctrine doctrine-orm

我使用以下内容获取结果集:

$em = $this->getDoctrine()->getEntityManager();
  $test = $em->getRepository('RestWebServiceBundle:Test')->findall();
Run Code Online (Sandbox Code Playgroud)

如何将$ test转换为数组?

toArray似乎不起作用.

Goh*_*n67 10

我相信有一种水合模式会生成数组而不是对象:

所以你使用:Query::HYDRATE_ARRAY假设findall方法没有被覆盖.

$test = $em->getRepository('RestWebServiceBundle:Test')->findall(Query::HYDRATE_ARRAY);
Run Code Online (Sandbox Code Playgroud)

如果被覆盖,您可以将其用作getResult通话中的参数.

Doctrine2手册中的示例:

$users = $query->getResult(Query::HYDRATE_ARRAY);
Run Code Online (Sandbox Code Playgroud)

见:http: //doctrine-orm.readthedocs.org/en/latest/reference/dql-doctrine-query-language.html#array-hydration