我需要一个返回json数据的api,所以我试图通过symfony中的一个控制器发送json数据,我使用的是序列化程序,但是我遇到了将多个属性组分配给多个关系(类别和用户)的问题。控制器代码:
$serializer = $this->container->get('serializer');
$JSONprojects = $serializer->serialize($DATA, 'json', ['groups' => ['project','category']]);
return new Response($JSONprojects);
return $JSONprojects ;project.php (敌意)
class Project
{
/**
* @ORM\Id
* @ORM\GeneratedValue
* @Groups("project")
* @ORM\Column(type="integer")
*/
private $id;
/**
* @ORM\Column(type="string", length=255)
* @Groups("project")
*/
private $name;
/**
*
* @ORM\ManyToMany(targetEntity=User::class, mappedBy="projects")
*/
private $users;
/**
* @Groups("project")
* @ORM\ManyToOne(targetEntity=User::class, inversedBy="myproject")
* @ORM\JoinColumn(nullable=false)
*/
private $creator;
/**
*
* @ORM\ManyToOne(targetEntity=Category::class, inversedBy="projects")
*/
private $category;Category.php (实体)
class Category
{
/**
* @ORM\Id
* @ORM\GeneratedValue
* @ORM\Column(type="integer")
*
*/
private $id;
/**
*
* @ORM\Column(type="string", length=255)
*/
private $name;
/**
*
* @ORM\Column(type="text")
*/
private $image;
/**
*
* @ORM\OneToMany(targetEntity=Project::class, mappedBy="category")
*/
private $projects;发布于 2022-03-26 09:54:31
您可以使用这样的序列化程序处理循环引用:
$JSONprojects = $serializer->serialize($data, 'json', [
'circular_reference_handler' => function ($object) { return $object; },
'groups' => ['project','category']
]);当命中循环引用时,它将返回该对象一次。
更多关于塞福尼博士中循环引用的信息。
https://stackoverflow.com/questions/71625324
复制相似问题