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

Łuk*_*asz 15 json frameworks entity doctrine-orm zend-framework2

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

问候.

Aur*_*nas 43

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

$asArray = $persistentCollection->getValues();
Run Code Online (Sandbox Code Playgroud)


Gui*_*nco 2

我将把答案分成两部分,主要是因为如果您想纯粹解决 PersistentCollection 或整个图形序列化,您还没有足够澄清。

1-假设你已经知道如何解决Entity的序列化问题,那么可以通过调用toArray()方法将PersistentCollection变成Entities数组。

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