我需要获取数据库中的所有记录作为数组使用findAll()
在教义中,我的查询是这样的
$result = $this->getDoctrine()
->getRepository('CoreBundle:Categories')
->findAll(\Doctrine\ORM\Query::HYDRATE_ARRAY);
即使将水合模式设置为HYDRATE_ARRAY
,我也会将结果作为对象
array:4 [▼
0 => Categories {#323 ▶}
1 => Categories {#326 ▶}
2 => Categories {#329 ▶}
3 => Categories {#332 ▶}
]
我犯了什么错误?
findAll()
方法没有任何参数。例如,您可以使用存储库的createQueryBuilder()
方法来实现您想要做的事情:
use Doctrine\ORM\Query;
// ...
$query = $this->getDoctrine()
->getRepository('CoreBundle:Categories')
->createQueryBuilder('c')
->getQuery();
$result = $query->getResult(Query::HYDRATE_ARRAY);
可以使用$query-
学说水合模式
DQL SELECT查询返回结果的格式可能会受到所谓的模式的影响,因此不能将其用于
findAll()
。您可以在下面尝试:
$em = $this->getDoctrine()->getManager();
$result = $em->createQuery('select m from CoreBundle:Categories m')
->getResult(\Doctrine\ORM\Query::HYDRATE_ARRAY);