使用Zend Framework 2将Doctrine 2实体持久集合转换为数组的最佳方法

时间:2014-02-28 22:53:44

标签: json doctrine-orm frameworks zend-framework2 entity

使用Zend Framework 2将Doctrine 2实体持久集合转换为数组的最佳方法(简单)是什么?我想转换为数组,然后用JsonView输出它。我可以编写使用get_object_var的函数,但是当实体有下一个实体集合时它是一个问题。

问候。

2 个答案:

答案 0 :(得分:40)

不确定Zend,但在SF2 + Doctrine中,您可以使用getValues()方法。

$asArray = $persistentCollection->getValues();

答案 1 :(得分:2)

我将答案分为两部分,主要是因为如果你想纯粹解决PersistentCollection或整个图形序列化,你还没有弄清楚。

1-假设您已经知道如何解决Entity的序列化,可以通过调用toArray()方法将PersistentCollection转换为实体数组。

2-假设您没有,我建议您使用预先构建的库,如JMS Serializer。 如果您想手动创建自己的,请使用可从EntityManager-> getClassMetadata(get_class($ someEntity))中提取的ClassMetadata实例,并迭代fieldMappings和associationMappings属性。