Symfony 3.0.4 使用 FOSRestBundle 序列化期间检测到循环引用

2024-01-07

我在 Symfony 项目中使用 FOSRestBundle。当我尝试处理视图时,在使用 Symfony 序列化器和 JMSSerializer 序列化数据期间失败。

这是呈现响应的方法:

默认控制器.php

$em = $this->getDoctrine()->getManager('magellan');
$qb = $em->createQueryBuilder();

$query = $qb->select('h')
        ->from('DataBundle:Holding', 'h')
        ->where($qb->expr()->eq('h.id', ':holding_id'))
        ->setParameter('holding_id', $holding_id)
        ->getQuery();

$results = $query->getResult();

$view = $this->view($results, 200);

// Everything's ok up to this point

return $this->handleview($view);

这些是我的实体:

控股.php

class Holding
{

    ...

    /**
     * @ORM\OneToMany(targetEntity="Subsidiary", mappedBy="holding")
     */
    private $subsidiaries;
}

子公司.php

class Subsidiary
{

    ...

    /**
     * @ORM\ManyToOne(targetEntity="Holding", inversedBy="subsidiaries")
     * @ORM\JoinColumn(name="id_holding", referencedColumnName="id_holding")
     */
    private $holding;

    /**
     * @ORM\OneToMany(targetEntity="Brand", mappedBy="subsidiary")
     */
    private $brands;
}

品牌.php

class Brand
{

    ...

    /**
     * @ORM\ManyToOne(targetEntity="Subsidiary", inversedBy="brands")
     * @ORM\JoinColumn(name="id_subsidiary", referencedColumnName="id_subsidiary")
     */
    private $subsidiary;

    /**
     * @ORM\OneToMany(targetEntity="Product", mappedBy="brand")
     */
    private $products;
}

产品.php

class Product
{

    ...

    /**
     * @ORM\ManyToOne(targetEntity="Brand", inversedBy="products")
     * @ORM\JoinColumn(name="id_brand", referencedColumnName="id_brand")
     */
    private $brand;

    /**
     * @ORM\ManyToOne(targetEntity="Sector", inversedBy="products")
     * @ORM\JoinColumn(name="id_sector", referencedColumnName="id_sector")
     */
    private $sector;

    /**
     * @ORM\OneToMany(targetEntity="Commercial", mappedBy="product")
     */
    private $commercials;
}

商业.php

class Commercial
{

    ...

    /**
     * @ORM\ManyToOne(targetEntity="Product", inversedBy="commercials")
     * @ORM\JoinColumn(name="id_product", referencedColumnName="id_product")
     */
    private $product;

    /**
     * @ORM\OneToMany(targetEntity="CommercialReport", mappedBy="commercial")
     */
    private $reports;

商业报告.php

class CommercialReport
{

    ...

    /**
     * @ORM\ManyToOne(targetEntity="Commercial", inversedBy="reports")
     * @ORM\JoinColumn(name="id_commercial", referencedColumnName="id_commercial")
     */
    private $commercial;
}

扇区.php

class Sector
{

    ...

    /**
     * @ORM\OneToMany(targetEntity="Product", mappedBy="sector")
     */
    private $products;
}

使用默认的 symfony 序列化器时,出现以下错误:

"message":"已检测到循环引用(配置的限制: 1).","class":"Symfony\Component\Serializer\Exception\CircularReferenceException"

当使用 JMSSerializer 时,当我转到控制器的相应页面时,该页面永远不会完成加载。同时,在 dev.log 文件中,每秒都会添加新的 Doctrine.debug 条目以及对我的数据库的请求。


    $normalizers->setCircularReferenceHandler(function ($object) {
        return $object->getId();
    });

如果您的 objectNormalizer() 在创建实例后添加它 它非常适合我

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Symfony 3.0.4 使用 FOSRestBundle 序列化期间检测到循环引用 的相关文章

随机推荐

  • WPF ListView箭头导航和击键问题

    我有一个只读 WPF listView 但有两个问题 1 当我加载listView时 我在后面的代码中设置了selecteditem 它工作正常 但是当我使用向上 向下箭头键浏览列表时 它总是跳转到开始时的第一项 2 我无法使用按键来选择项
  • 用于将 html 解析为 DOM 层次结构树的 php lib

    我需要一些 php 库来将 html 内容解析为 DOM 树 像这样 html head title title content meta meta content body div div div content etc 并修复或清理无效
  • 信号:MPI C++ 中的分段错误 (11)

    我有一个代码 它计算 MPI 中整数的平均值 include
  • 将字符串数组转换为 TypeScript 类型

    假设我有一个字符串数组 const s foo rolo zoombaz 所以我会得到 type v foo string rolo string zoombaz string 奖金 理想情况下 我希望将它们映射到驼峰式大小写 所以如果我有
  • 关于依赖共享的 Maven 多模块项目组合

    有几个类似的问题 但没有这样的 您如何处理这种情况 典型场景 一个由 8 11 个子项目组成的项目 具有一个父工件 项目和一个主要使用 声明其他项目作为模块的主项目 问题是所有项目 严格 只共享共同的依赖关系 例如testng loggin
  • WebStorm/PhpStorm 对 jsx 中的 React 属性(如 className)发出警告

    我无法删除反应代码中的以下警告 属性className这里是不允许的 PhpStorm 中的警告 未知的 HTML 标记属性无法设置为驼峰式 仅保存小写字母 并且关闭该复选框没有帮助 设置在Languages Frameworks gt J
  • Java基于枚举类型创建对象的方法

    我的班级是这样的 class X class Y extends X class Z extends X 我有每个子类 id class 的枚举 enum Type Y TYPE 1 Y class Z TYPE 2 Z class int
  • 基于 ASP .NET MVC 3 的 Facebook 应用程序:使用默认模型绑定器解析查询字符串数组?

    简而言之 在用户使用 fb request form 控件选择好友后 Facebook 向我的 MVC 3 应用程序传递以下查询字符串 我假设默认模型绑定器会解析查询字符串中的 ids 数组 并将其绑定到以下操作中的 ids 参数 publ
  • JSON.stringify 在我的 Json 对象中添加额外的 \ 和 "" 时出现问题

    您好 我正在使用 Javascript 创建一个带有键和值的对象数组 使用以下代码 ValuesArray push key this attr someattribute value this val 结果我有一个像这样的对象数组 key
  • Rails - 更新单个属性:与自定义操作或带有隐藏字段的表单链接?

    假设我有一个 User 模型 其中 facebook uid 字段对应于用户的 facebook id 我想允许用户取消其 Facebook 帐户的链接 这样做 我需要将此属性设置为零 我目前看到有两种方法可以做到这一点 第一种方法 创建自
  • Magic Suggest - 从 MVC 模型中预先选择多个项目

    我正在寻找一种用多个值填充 Magic Suggest 控件的方法 我正在使用 ASP NET MVC 并希望根据模型中的属性设置这些值 Part 1 Magic 建议支持多个值 A相关问题 https stackoverflow com
  • 单击 jquery 中的单选按钮时显示动态价格的总和

    我的一个与旅游网站相关的项目的处境非常糟糕 我不知道如何计算每位乘客首选房型的总金额 我的数据库中有两名乘客的记录 1 玛吉2 以斯帖 每位乘客的默认价格为 125000 如果用户点击选择自己的房型 则所选乘客的价格为 150000 这是我
  • 如何读取/打印(_io.TextIOWrapper)数据?

    使用以下代码 我想 gt 打开一个文件 gt 读取内容并删除不需要的行 gt 然后将数据写入文件并读取文件以进行下游分析 with open chr2 head25 gtf r as f open test output txt w as
  • 使用 coord_polar() 进行“缩放”/“缩放”

    我有一个使用 geom smooth 的极坐标图 平滑的黄土线非常小 围绕着地块的中心 我想 放大 这样你就能看得更清楚 使用类似的东西scale y continuous limits c 05 7 将使 geom smooth 环变大
  • 如何指定颜色条范围并保持它而不考虑绘图值

    我昨晚打了这个 然后当我准备提交它时我想通了 提交以防其他人需要 我正在底图上绘制多天每小时的气象值 我想为每张地图始终保留相同的颜色条值 假设每个图的范围是 0 10 有时这些值都非常接近于零 而另一些则介于 0 10 之间 for fi
  • 在 Windows Phone 中拖放

    我正在尝试实现拖放功能来排列列表框的内容 我能够拖动该项目 当我尝试将第二个项目拖动到第一个项目时 它会出现在第一个项目上方 但是当我尝试将第一个项目拖动到第二个项目时 第一个项目会出现在第二个项目下方 我也无法赶上掉落 以便我可以安排物品
  • 缩放至适合:嵌入 HTML 中的 PDF

    我正在将本地 pdf 文件嵌入到一个简单的网页中 并且希望设置初始缩放以适合对象大小 这是我尝试过的 但它不影响缩放 有谁知道如何修改代码 以便将其初始缩放设置为适合对象大小 回复有点晚了 但我注意到这些信息很难找到 而且还没有找到答案 所
  • 为什么 scipy 的稀疏 csr_matrix 的向量点积比 numpy 的密集数组慢?

    我遇到一种情况 我需要从稀疏矩阵中提取一行 并用密集行获取其点积 使用 scipy 的 csr matrix 这似乎比使用 numpy 的密集数组乘法慢得多 这让我感到惊讶 因为我预计稀疏点积将涉及更少的操作 这是一个例子 import t
  • 如何在react-router中创建锚标记?

    我在内部使用react boilerplate 3 4 0 和react router来进行路由 我尝试创建一个链接 当我点击它时 我希望滚动到 divid anchor tag 即使我使用 Link 组件而不是 标记 它也只是滚动到页面顶
  • Symfony 3.0.4 使用 FOSRestBundle 序列化期间检测到循环引用

    我在 Symfony 项目中使用 FOSRestBundle 当我尝试处理视图时 在使用 Symfony 序列化器和 JMSSerializer 序列化数据期间失败 这是呈现响应的方法 默认控制器 php em this gt getDoc