首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >符号串行化循环引用由于多到多的关系

符号串行化循环引用由于多到多的关系
EN

Stack Overflow用户
提问于 2022-03-26 04:31:56
回答 1查看 331关注 0票数 0

我需要一个返回json数据的api,所以我试图通过symfony中的一个控制器发送json数据,我使用的是序列化程序,但是我遇到了将多个属性组分配给多个关系(类别和用户)的问题。控制器代码:

代码语言:javascript
复制
        $serializer = $this->container->get('serializer');
        $JSONprojects = $serializer->serialize($DATA, 'json', ['groups' => ['project','category']]);
        return new Response($JSONprojects); 

        return $JSONprojects ;

project.php (敌意)

代码语言:javascript
复制
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 (实体)

代码语言:javascript
复制
 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;
EN

回答 1

Stack Overflow用户

发布于 2022-03-26 09:54:31

您可以使用这样的序列化程序处理循环引用:

代码语言:javascript
复制
$JSONprojects = $serializer->serialize($data, 'json', [
    'circular_reference_handler' => function ($object) { return $object; },
    'groups' => ['project','category']
]);

当命中循环引用时,它将返回该对象一次。

更多关于塞福尼博士中循环引用的信息。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71625324

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档