【发布时间】:2015-02-10 11:37:25
【问题描述】:
我正在尝试对一个学说对象进行 json 编码,而不是序列化其集合属性中的每个项目;
我想返回一个 id 数组,例如:
{"children":[200,201],"id":1}
代替:
{"children":[{"parents":[],"id":200},{"parents":[],"id":201}], “id”:1}
我正在使用jmsserializerbundle 序列化学说对象
我试图创建一个虚拟属性并循环遍历集合属性中的每个项目,这可以工作但感觉很脏......
控制器:
$serializer = $this->container->get('serializer');
$reports = $serializer->serialize($parent, 'json');
实体:
/**
* Parent
*
* @ORM\Table()
* @ORM\Entity
*/
class Parent
{
[...]
/**
* @ORM\ManyToMany(targetEntity="Children", inversedBy="parents")
* @Exclude
*/
private $children;
/**
* @VirtualProperty
* @SerializedName("children")
*/
public function getChildrenId()
{
$children= array();
foreach ($this->children $child){
$children[] = $child->getId();
}
return $children;
}
[...]
【问题讨论】:
标签: php symfony serialization doctrine-orm jmsserializerbundle