如何将doctrine实体(带关系)对象转换为数组(Symfony2)

时间:2016-03-18 13:57:31

标签: php symfony doctrine-orm

我有一个我想要转换为数组的对象。我真正需要的是来自DB的当前记录的数据数组。由于对象的递归结构,序列化程序无法提供帮助。

类似Doctrine::HYDRATE_ARRAY已获取对象。

1 个答案:

答案 0 :(得分:0)

您可以这样做,无需转换数据。 在查询中,不要选择实体的所有对象,而只选择所需的字段。这样查询返回一个数组数组,如:

$results  = array(
    0 => array('col1' => 'some_data', 'col2' => 'some_other_data'),
    1 => array('col1' => 'some_data', 'col2' => 'some_other_data')
);

而不喜欢:

$results  = array(
    0 => Object of type Categories(for example),
    1 => Object of type Categories(for example)
);

查询应该是这样的:

$em->createQueryBuilder('c')
   ->select('c.name, c.shortName, c.some_column')
   ->from('AppBundle:Entity:Category', 'c')
   ->getQuery()
   ->getResult();