Json 序列化时处理双向属性(如果两者都需要)
我有两个实体: 包含一些包的组织:Json 序列化时处理双向属性(如果两者都需要),json,symfony,serialization,doctrine-orm,Json,Symfony,Serialization,Doctrine Orm,我有两个实体: 包含一些包的组织: /** * @ORM\OneToMany(targetEntity="Package", mappedBy="organization", cascade={"all"}) **/ private $packages; 以及属于某个组织的包: /** * * @var string @ORM\ManyToOne(targetEntity="Organization", i
/**
* @ORM\OneToMany(targetEntity="Package", mappedBy="organization", cascade={"all"})
**/
private $packages;
以及属于某个组织的包:
/**
*
* @var string @ORM\ManyToOne(targetEntity="Organization", inversedBy="packages", cascade={"all"})
* @ORM\JoinColumns({
* @ORM\JoinColumn(name="organization", referencedColumnName="id")
* })
*/
private $organization;
现在,我有两个用例:我想进入一个组织,所有包都是序列化的。但是我还需要显示包(也是序列化的),其中包含它所属的组织的信息
当我只是序列化结果时,比如说组织(包以相同的方式序列化):
我遇到的问题是,它将序列化组织,并获取所有包,在这些包中,它将获取对组织的搜索(该组织再次具有包含包的列表等等)。所以我遇到了一个无限循环
这样做有没有最佳实践?或者我要创建两个没有上面定义的属性的类,然后将其包装到该类中
我使用序列化方法来获取JSON格式的所有对象。最后,我无缘无故地查看了
MaxDepth()
属性的Downvote,解决了我的问题。感谢那个浪费分数的人…:D
// Serialize to json
$serializer = new Serializer(array(
new GetSetMethodNormalizer()
), array(
'json' => new JsonEncoder()
));
$json = $serializer->serialize($result, 'json');
return $json;