使用上下文的“circular_reference_handler”键代替 symfony 4.2

2024-01-31

我必须序列化一个对象,并且遇到了如此常见的“循环引用错误”

我使用了旧的 Symfony 方法:

$normalizer = new ObjectNormalizer();
// Add Circular reference handler
$normalizer->setCircularReferenceHandler(function ($object) {
    return $object->getId();
});
$normalizers = array($normalizer);
$encoders = [new JsonEncoder()];
$serializer = new Serializer($normalizers, $encoders);

这项工作有效,但从 Symfony 4.2 开始,我得到了您在这个问题的标题中看到的异常:

使用上下文的“circular_reference_handler”键代替 Symfony 4.2

我在有关序列化器的 Symfony 文档中找不到任何对此的引用。

https://symfony.com/doc/current/components/serializer.html#handling-circular-references https://symfony.com/doc/current/components/serializer.html#handling-circular-references

有谁知道如何使用这种“上下文关键”而不是旧方法?


不幸的是,它在文档中有点隐藏,但您可以创建一个类而不是使用匿名函数,然后配置序列化器以默认使用此服务。

它是配置参考的一部分:https://symfony.com/doc/current/reference/configuration/framework.html#circular-reference-handler https://symfony.com/doc/current/reference/configuration/framework.html#circular-reference-handler

# config/packages/serializer.yaml

serializer:
    circular_reference_handler: 'App\Serializer\MyCircularReferenceHandler'

没有指定接口。相反,该类需要可调用。所以在你的情况下它可能看起来像这样:

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

使用上下文的“circular_reference_handler”键代替 symfony 4.2 的相关文章

  • 具有挑战性的问题 - 使用 PHP 对 XML 数据进行排序

    我有 xml 文件 其中包含大量产品数据 我需要根据我的字段 ProductRange 的数据对我的产品进行排序 ProductRange urldecode GET Range XML 文件数据
  • jquery ajax加载后丢失CSS

    大家知道如何解决 load Ajax 请求后的 css 问题吗 例如 如果我想从网页加载 DIV 在我的 Ajax 请求之后 container load path to div div id 我丢失了与该 div 关联的所有 css 和脚
  • Php 转换 GMT 格式的时间

    我有这个字符串2012 06 27 16 17 06我想将其转换为 GMT 格式 我怎样才能做到这一点 多谢 Use gmdate http php net manual en function gmdate php 使用以下命令将当前日期
  • 如何从 PHP 中的字符串创建可能的字符串组合?

    如何从 PHP 中的字符串创建可能的字符串组合 Exp input abc output array 0 gt a 1 gt ab 2 gt abc 3 gt ac 4 gt acb 5 gt b 6 gt ba 7 gt bac 8 gt
  • 防止 Twig 函数扩展中的输出转义

    我创建了一个 Twig 扩展 image image png 200 嗨 我知道我可以做 image image png 200 raw 但我更喜欢使用 PHP 代码 这样所有内容 来自这个 图像 扩展 都不会被转义 我看不出这可能 我知道
  • 如何在PHP中获取div中的所有链接

    我想从另一个网站打开一个页面 并提取一个中的所有链接 href div of class layout 2 2 在此页面中 我如何使用 PHP 来做到这一点 我想复制layout 2 2中的每个链接this https url 网页 这是我
  • 间歇性 PHP 抽象类错误

    我已经为此奋斗了一段时间 但无法弄清楚 也许其他人也有 或者 Slim PHP Apache 等这里有更深层次的问题 在正常工作几个小时后 我的 Slim 安装将开始给出所有路线均如此 致命错误 类 Slim Collection 包含 1
  • 如何在 Symfony 4 中为测试环境设置数据库

    我对如何在 symfony 4 中为测试环境设置数据库感到困惑 我曾经在配置测试 ymlsymfony 3 及以下版本中的文件 最佳做法是什么 我应该重新创建一个学说 yaml文件输入配置 包 测试 该文档提到如何通过编辑 phpunit
  • 安装 OCI8:如何纠正“使用未定义常量 OCI_COMMIT_ON_SUCCESS”错误?

    我正在尝试在 RedHat 服务器 RHEL7 上为我的 Apache 服务器安装 OCI8 此时 当我尝试使用 Symphony 连接到我的服务器时 出现以下错误 异常 ErrorException 使用未定义的常量 OCI COMMIT
  • PHP-列出一年中一个月中的所有天[重复]

    这个问题在这里已经有答案了 可能的重复 我在 PHP 中有 2 个日期 如何运行 foreach 循环来遍历所有这些日期 https stackoverflow com questions 3207749 i have 2 dates in
  • 使用 php 脚本的电子邮件管道

    你好 我想将所有电子邮件 到达我的收件箱 转发到 php 脚本并检索电子邮件内容并将其保存在文件中 因此 我正确地添加了具有管道路径的电子邮件转发器 转发地址 电子邮件受保护 cdn cgi l email protection 管道到程序
  • 序列化是通过套接字发送数据的最佳选择吗?

    有人告诉我 序列化不是通过套接字发送数据的最佳方法 但他们说他们在一本书上读过一次 并且不确定更好的方法 因为他们以前没有真正做过网络 那么序列化是最好的方法还是有更好的方法 如果这有很大的不同的话 这也是一个游戏 通过搜索有关通过它发送对
  • 使用 Mock 对 Laravel 5 Mail 进行单元测试

    有没有办法在 Laravel 5 中测试 Mail 尝试了我在互联网上看到的唯一合法的模拟示例 但它似乎只适用于 Laravel 4 下面的当前代码 mock Mockery mock Swift Mailer this gt app ma
  • 将具有值的产品属性添加到 Woocommerce 中的产品

    我正在使用此代码添加自定义属性 attributes array array name gt Size options gt array S L XL XXL position gt 1 visible gt 1 variation gt
  • 从 PHP 生成渐变颜色

    我想知道如何构建一个给出颜色代码和 显示该颜色的渐变 例如 function generate color int colorindex Generate 10 pale colors of this color 请帮我 迈克尔引用的代码相
  • 检查一个类是否是另一个类的子类

    我想在不创建实例的情况下检查一个类是否是另一个类的子类 我有一个类 它接收类名作为参数 作为验证过程的一部分 我想检查它是否属于特定的类系列 以防止安全问题等 有什么好的方法可以做到这一点吗 is subclass of http php
  • 从关系中合并 Laravel 中的集合

    假设我有 3 张桌子 Images Subject Style 关系是多对多 图像 主题 和多对多 图像 样式 现在我想做一些类似的事情 result subjectResult gt images gt merge styleResult
  • 表单序列化javascript(无框架)

    想知道 javascript 中是否有一个没有 jquery 或任何框架的函数可以让我序列化表单并访问序列化版本 2023 年更新 Use FormData https developer mozilla org en US docs We
  • 为什么 LinkedIn v2 Share API 在任何 v2/shares 端点上给出权限不足的错误?

    当我调用任何 v2 LinkedIn 共享 API 端点时 例如https api linkedin com v2 socialActions https api linkedin com v2 socialActions share UR
  • 简单的颜色变化

    我正在创建一个用户界面 用户可以在其中更改页面的颜色值 我想要的是获取分配给其背景颜色的值并将其变亮一定程度 我只是想获得一条亮点线 而不必每次都制作新图像 示例 用户将背景颜色设置为 ECECEC 现在我希望某个元素边框变成 F4F4F4

随机推荐

  • 在 iPhone 上播放 CAF 声音的最简单方法?

    做到这一点有多难 有人告诉我 在 iPhone 上播放音频非常困难 实在不敢相信 但他说玩一个很难 但同时玩两个或三个就很难了 听起来很可怕 对此大家有什么想说的吗 我想要做什么 我有大约 10 个带有小光点 蜂鸣声和按钮按下声音的 CAF
  • 使用 Groovy 修改节点标签的 Jenkins/Hudson CLI API

    有谁知道如何以非手动方式修改 Jenkins Hudson 节点标签 我的意思是 彻底的 API 如该工具提供的 CLI API 当然无需重新启动 Jenkins Hudson 我的猜测是 最好的选择是使用 Groovy 脚本进入 Jenk
  • 在 JUnit 中检查异常的最佳实践是什么?

    我正在尝试编写测试用例 根据我所读到的内容 我的测试从一开始就应该失败 我应该努力让测试通过 但是 我发现自己正在编写测试来检查边界以及它们应该引起的异常 Test expected NegativeArraySizeException c
  • 如何从ABRecordID获取ABRecordRef?

    我已访问地址簿并成功从中提取了记录和必要信息 我也提取了recordid 我的问题是如何使用这个 recordid 来提取记录 我正在使用的代码是 ABRecordID recordId ABAddressBookRef addressBo
  • C# 如何将光驱盘符从 D: 更改为 Z:

    我正在尝试编写一种方法 将 CD ROM 驱动器从字母 D 更改为字母 Z 但对 WMI 没有任何运气 还有其他方法可以使用 C 来做到这一点吗 public void setVolCDROM SelectQuery queryCDROM
  • `git log --all` 怎么会错过提交点?

    提交后 我会提醒我处于分离的 HEAD 状态 gt git commit m Implemented Runrealfast algorithm detached HEAD af46ac9 Implemented Runrealfast a
  • AWS Lambda 热启动和冷启动

    您好 我是 AWS Lambda 新手 我想知道热 Lambda 函数 热启动 和冷 Lambda 函数 冷启动 是什么意思 谁能详细解释一下热 Lambda 和冷 Lambda 之间有什么区别 上传代码后或一段时间不活动后 您的 Lamb
  • 自解压可执行 C++

    我试图了解自解压 PE 文件的工作原理 有人可以解释为什么我的代码不起作用 或者修复 main 部分 include
  • 来自 std::string 的 std::istringstream 无需复制

    我一直在用这个 ifstream in file txt string line getline in line istringstream iss line 进行一些简单的解析 我想避免不必要的复制以提高性能 所以我尝试 ifstream
  • 如何用selenium获取响应状态码?

    作为一个新手 我想知道是否有一种方法可以获取http响应状态代码来判断一些期望 例如远程服务器关闭 url损坏 url重定向等 在硒中这是不可能的 欲了解更多信息 请点击here https github com seleniumhq se
  • 检测PHP会话是否存在

    Facebook 现在向用户提供订阅服务 以便您可以获得有关更改的实时更新 如果我的应用程序收到更新 我计划将其存储在数据库中 我还想检测他们的会话是否存在 如果是的话我也可以更新那里的数据 我的会话 ID 是 MD5 fb id 秘密 因
  • b-spinner 的 VUE-js 可访问性——使用 Aria 进行数据加载的音频公告,每 3 秒重复一次

    当微调器直观地显示数据正在加载时 我试图添加 数据加载 音频公告的可访问性 显然 我正在寻找一种声音公告 最好是一种无需单击任何内容即可自动播放的公告 我的目标是自动听到公告并在加载时每 3 秒重复一次 下面的代码会自动生成一个工作公告 然
  • 项目文件上的 intellij 图标

    intellij 在我的 java 文件上放置了看起来像没有入口标志的东西 带有一条线的红色圆圈 四处搜索但找不到原因 请问有人知道吗 这是一个 Maven 项目 如果这有影响的话 这意味着这些文件不是项目设置的一部分 您是如何创建该项目的
  • 将窗口固定到桌面/将窗口粘贴到桌面/“始终位于底部”窗口

    我正在 C Win32 中开发一个基本的桌面应用程序 我现在的目标是创建一个基本的 便签 应用程序固定 粘在桌面上 即始终位于桌面前面 但始终位于任何其他应用程序后面 这确实是一个个人项目 只是为了对抗我糟糕的记忆力 让我的任务 笔记始终在
  • 如何优化这个索引算法

    我的问题 无论如何 我可以加快计算速度吗 是否有更好的算法或实现可以用来计算相同的值 描述算法 我有一个复杂的索引问题 我正在努力以有效的方式解决它 目标是计算矩阵w prime使用大小相同的矩阵中的值的组合w dY and dX 的价值w
  • 在 JavaScript 中以 12 小时格式显示时间

    我想通过更改以下代码以 12 小时格式显示时间 我尝试了各种技术但没有运气 希望能从你们那里找到解决方案
  • 如何在android中解析HTML?

    我正在为 android 制作一个应用程序 该应用程序的功能之一是返回图书馆目录在线搜索的结果 应用程序需要以与应用程序的其余部分保持一致的方式显示搜索结果 这是通过自定义 HTML 表单执行的 即 需要解析搜索结果并显示有用的元素 我只是
  • CSS3动画在Android 2.2上闪烁(webkit-transform:translate(..) 同时缩放(..))

    我在 Android 上做了一些关于 CSS3 动画 使用 webkit transition 进行转换 的研究 CSS3 动画在 Webkit 中仍然是一个实验性功能 如果您尝试同时进行平移和缩放 您会发现 CSS 动画中存在一些小故障和
  • 使用最新的 csproj 格式时,Web 部署包未拾取parameters.xml

    我有一个项目正在更新以使用新的 csproj 格式 我们曾经使用以下 msbuild 参数 msbuild Logging sln p WebPublishMethod Package p PackageAsSingleFile true
  • 使用上下文的“circular_reference_handler”键代替 symfony 4.2

    我必须序列化一个对象 并且遇到了如此常见的 循环引用错误 我使用了旧的 Symfony 方法 normalizer new ObjectNormalizer Add Circular reference handler normalizer