问题标签 [jmsserializerbundle]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
php - 使用 JMS Serializer 时禁用 Doctrine 2 延迟加载?
我在我的 Zend 项目中使用 Doctrine 2 ORM,并且在几种情况下需要将我的实体序列化为 JSON。
ATM 我使用 Querybuilder 并加入我需要的所有表。但是我的序列化程序导致学说延迟加载每个关联的实体,这会导致大量数据并引发递归。
现在我正在寻找一种完全禁用 Doctrine 延迟加载行为的方法。
我选择数据的方法如下:
我希望我的结果集只包含选定的表和关联。
任何帮助将不胜感激。
symfony - 如何使用 JMSSerializerBundle 创建良好的超媒体格式?
假设我想创建一个类似于以下内容的 XML 响应:
给定一个如下所示的域模型:
以及类似以下的金钱阶层:
现在,我的问题。创建如下所示的响应非常简单
使用注解、XML 或 YAML 来告诉 JMSSerializerBundle 如何序列化产品对象。但是,实体不应指定xmlns:atom
and条目,因为它不应该知道它的位置和位置。您还可以想象更多具有不同 - 属性的链接,例如.
想到的一种解决方案是一种服务,它监听特定对象的序列化事件,并根据需要添加这些属性和标签。该服务可以使用 DI 来获取, -service 等以适合所请求格式的格式生成这些链接。IE 在 XML 响应中,它可以将适当的类型设置为<atom:link>
rel
edit
Request
Router
application/media-format+xml
,而在 json 响应中,它可以生成类似
现在,在JMSSerializerBundle 的文档中,我找到了@PreSerialize
和的注释@PostSerialize
,但它们似乎只能调用被序列化对象的方法。
有谁知道如何/是否可以实现?还是我必须使用 Twig 等模板引擎并手动创建 XML 响应?
php - JMSSerializerBundle 在 JSON 中以字符串形式返回双精度
所以我们JMSSerializerBundle
在 Symfony2 项目中使用 为我们的客户生成一些 JSON。它正在序列化我们的 Doctrine2 实体并且像魅力一样工作,但有一个例外。所有双精度/十进制值都是生成的 JSON 中的字符串,这会使客户端感到困惑。
我们的序列化实体看起来像这样,我这里只粘贴了相关的属性/getter。
纬度/经度值显示在 JSON 中,如下所示:
如何摆脱引号,所以它是 JSON 中的数字而不是字符串?这应该很容易,但我在文档或网上找不到关于这个问题的任何内容。希望有人可以在这里帮我一把!
php - 特定类型的 JMSSerializerBundle 转换
我在 Symfony2 项目中使用 JMSSerializerBundle,并结合 Doctrine2。
我将类属性定义为双值,因为它代表产品价格。
要求显示带有尾随零的值(100.00 而不是 100)。我想将这种转换与反序列化挂钩,因为序列化程序实际上知道他正在使用双精度值。
战后强制转换所有数值将不起作用,因为还有其他属性不能受到影响(如数量,这些属性必须保持整数)。
关于这个问题的任何想法/提示?
symfony - LogicException:容器扩展“jms_serializer”未注册
我正在尝试添加 FosComment 包、FOS Rest Bundle、JMS 序列化程序
我收到错误 LogicException:容器扩展“jms_serializer”未注册
当它们安装时。
\任何人都可以建议解决这个问题
symfony - JMSSerializer 反序列化集合
我在反序列化学说集合的序列化集合时遇到问题。找不到关于那个和任何主题的文档,我是 JMSSerializer 的新手。当我尝试反序列化时:
$collection 为空
当我设置为 null 而不是类名时,我在结果上有 assoc 数组。有没有一种优雅的方式来反序列化那个json?
编辑:对不起。这是序列化的集合:
symfony - JMSSerializerBundle 原则实体更新
我对反序列化的 Doctrine 实体有疑问。序列化对象没有实体的所有字段,当我更新它们以使字段设置为空时。我认为同样的问题在这里,但没有与使用 JMSSerializer + Doctirne 相关的解决方案。
问候
symfony - 具有关系的实体中的 JMSSerializerBundle 序列化组
我在使用组序列化具有许多关系的实体时遇到问题。我在以这种方式序列化相关实体时遇到问题。
假设我有两个实体:产品和相关元素。
元素实体具有类似的结构:
我的问题是,当我使用“详细信息”组实体序列化产品时,我只想序列化元素的 id,但正如您所见,实体已定义与产品相同的组(以防我需要元素对象的详细信息),因为我想要在我的所有实体上都有统一的组,并防止创建数百个组,如“product_details”、“element_details”等。
当我访问关系或类似的东西时,有没有办法最终更改序列化组?处理程序可能或类似的东西?
问候和感谢任何帮助
serialization - JMSSerializerBundle。无法控制第三方元数据
我有两个实体希望使用 JMSSerializerBundle 进行序列化。Music
实体有一个映射exclusion_policy: NONE
文件。
该Music
实体具有User
来自的实体的字段FOSUserBundle
。该User
实体有一个映射文件,exclusion_policy: ALL
其中有几个字段设置为expose: true
,因此它们将被序列化。
问题是,该User
字段已完全序列化。我是否更改User
实体的映射文件都没关系。
这是它的外观:
为什么它不引用它自己的映射文件?还是我在某个地方弄错了?
到目前为止我尝试了什么
我已阅读第三方元数据文档。它只是说在我的序列化程序服务中添加一个新目录。我已经这样做了,但是我必须扩展FOS\UserBundle\Entity
类,并且它也无法访问我试图排除的父受保护字段。
arrays - ReflectionException:类 ArrayCollection 不存在
我正在尝试为移动摘要序列化实体。我有这个实体类:
现在,当我在我的DefaultController.php
:
我有use Doctrine\Common\Collections\ArrayCollection;
,DefaultController.php
但似乎错误来自内部JMSSerializerBundle
。
到目前为止我尝试了什么
- 我尝试将
Doctrine
注释定义为以 a 开头\
,但这没有帮助 - 我已经清除了我的缓存一百万次
- 我搜索了类似的异常,但它们似乎都是由拼写错误引起的,我在过去 48 小时内检查了拼写错误,但找不到。
这些类是使用自动生成的app/console
。