Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >Symfony 4序列化具有意外关系值NULL的实体

Symfony 4序列化具有意外关系值NULL的实体
EN

Stack Overflow用户
提问于 2018-01-27 20:47:38
回答 2查看 3K关注 0票数 1

我在帖子和用户之间有ManyToOne关系:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
/**
 * @ORM\ManyToOne(targetEntity="App\Entity\User\User")
 */
private $author;

在我从我的端点获得响应后,如下所示:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
array:2 [
  "message" => "OK"
  "data" => array:1 [
    0 => Post {#6077
      -id: 1
      -title: "sda"
      -teaser: "asdj"
      -content: "asd"
      -createdDateTime: DateTime @1517078058 {#6075
        date: 2018-01-27 18:34:18.0 UTC (+00:00)
      }
      -deletedDateTime: null
      -author: User {#6294
        +__isInitialized__: false
        -id: 1
        -firstName: null
        -lastName: null
        -email: null
        -activationCode: null
        -isActive: null
        -createdDateTime: null
        -deletedDateTime: null2
      }
      -statusId: false
    }
  ]
]

我正在尝试将其序列化为JSON。以前(Symfony 3)有一个关于循环引用的问题,我设法解决了这个问题,但这有点不同。

我一直收到500个响应,异常:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
NotNormalizableValueException
An unexpected value could not be normalized: NULL

如果我删除实体之间的关系,那就没问题了,所以这显然就是问题所在。

它将相关对象视为无法规范化的对象。出于某种原因。不知道为什么会这样。在文档里没有找到任何关于这个的东西。

我遗漏了什么吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-02-02 20:25:22

我想我已经解决了我的问题。我访问了:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
/vendor/symfony/serializer/Serializer.php

经过很少的调查,我发现normalizer在PHP资源上失败了。

原来我的用户表中有一个VARBINARY类型的字段。根据doctrine documentation的说法,该类型被转换为PHP资源。

结论: Symfony序列化在序列化实体和相关子实体方面没有任何问题。它根本不能标准化数据的资源类型。

我认为这是值得记住的事情。

票数 2
EN

Stack Overflow用户

发布于 2018-01-28 02:03:06

我需要更多的信息来帮助你。你用的是哪种串行化程序,Symfony?如何加载序列化程序?无论是什么,错误是显而易见的:您正在使用的序列化程序的规范化程序在发现空字段时不知道该如何处理。我的猜测是,正如Symfony序列化程序官方文档中所示,您只将一个规范化程序(大约5个可用的)加载到序列化程序中。

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

https://stackoverflow.com/questions/48480395

复制
相关文章
Neo4J:NULL值
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
程裕强
2019/10/22
5020
Neo4J:NULL值
MySQL唯一索引和NULL空值之间的关系
《Oracle唯一索引和NULL空值之间的关系》提到了当存在唯一索引的时候,不能插入两条(1, 'a', null),但是有朋友说,MySQL允许,实测一下,
bisal
2022/04/30
3.4K0
MySQL唯一索引和NULL空值之间的关系
撸个 symfony4(一)
最近在看symfony,发现laravel里面也引用了这个框架,国内关于symfony的资料不是很多,但是体验了以下之后,感觉还是不错的,所以记录下踩坑之旅。这是[官方文档](https://symfony.com)
仇诺伊
2020/04/24
4490
撸个 symfony4(一)
撸个 symfony4(二)
目标其实是完成如下的需求,如果有想看源码的,可以看下sf官网出的一个demo。
仇诺伊
2020/04/24
2.4K0
撸个 symfony4(二)
Mysql中的Null值
在大对数编程语言中,逻辑表达式的值只有两种:True,False。但是在关系型数据库中的逻辑表达式并非两种,而是三值逻辑的表达式(True、False、Unknown)。
DH镔
2019/12/19
2.5K0
在Entity Framework中使用存储过程(二):具有继承关系实体的存储过程如何定义?
在《实现存储过程的自动映射》中,我通过基于T4的代码生成实现了CUD存储过程的自动映射。由于映射的都是基于数据表结构的标准的存储过程,所以它们适合概念模型和存储模型结构相同的场景。如果两种模型存在差异,在进行数据更新操作的时候就会出错。本篇文章主要介绍当概念模型中具有继承关系的两个实体映射到数据库关联的两个表,如何使用存储过程。 目录 一、创建具有继承关系的实体 二、基于继承关系实体的查询与更新 三、映射标准的CUD存储过程 四、修正存储过程 一、创建
蒋金楠
2018/02/07
1.5K0
在Entity Framework中使用存储过程(二):具有继承关系实体的存储过程如何定义?
Hibernate实体关系映射
上一篇文章我们学习了Hibernate的框架搭建,并且完成了单表的CRUD操作,今天我们来学习Hibernate中的多表关联。
南风
2019/04/22
1.1K0
Hibernate实体关系映射
MySQL NULL值特性
NULL是一种“没有类型”的值,通常表示“无值”,“未知值”,“缺失值”,“超界”,“不在其中”等,我们在日常运用中很容易和NULL字符串混淆,这里大致整理了下NULL值的一些特性,以便能够正确使用NULL值。
星哥玩云
2022/08/17
2.7K0
MySQL NULL值特性
elasticsearch 处理null值
1.查询为空的字段 我们查询某个字段为空的数据时,在mysql中: select eid,ent_name from ent_search where enttype_code is NULL; 在elasticsearch中,我们使用的api为exists,这个查询是:查询这个字段为空的或者没有这个字段的: GET ent_search/_search { "_source": ["eid","ent_name"], "query": { "bool": {
IT云清
2019/01/22
2.9K0
SQL中的Null值处理
在日常的开发中,遇到需要处理 Null 值的场景还是蛮常见的。比如,查询某个字段包含 Null 值的记录、在展示的时候将 Null 值转为其它值、聚合包含 Null 值的列等。
白日梦想家
2020/08/27
2.9K0
具有依赖关系的并行操作执行
今天看到看到一篇MSDN文章《Parallelizing Operations With Dependencies》,作者是微软Parallel Computing Platform团队的一个开发经理。文中提供出一种用于并行执行一组具有依赖关系的操作的解决方案,这不由得想起我在一年之前写的一个具有相同的功能的组件。于是翻箱倒柜找了出来,进行了一些加工,与大家分享一下。 一、问题分析 我们知道,较之串行化的操作,并行计算将多个任务同时执行,从而充分利用了资源,提高了应用的整体性能。对于多个互不相干的操作,我们
蒋金楠
2018/01/16
2.7K0
具有依赖关系的并行操作执行
实体-联系图(ER图)_实体关系图
我们通常用实体、联系和属性这三个概念来理解现实问题,因此ER模型比较接近人的思维方式。此外,ER模型用简单的图形符号表达系统分析员对问题域的理解,不熟悉计算机技术的用户也能理解它,因此,ER模型可以作为用户与分析员之间有效的交流工具。
全栈程序员站长
2022/09/29
2.3K0
实体-联系图(ER图)_实体关系图
删除列中的 NULL 值
今天接到一个群友的需求,有一张表的数据如图 1,他希望能通过 SQL 查询出图 2 的结果。
白日梦想家
2020/07/20
9.9K0
删除列中的 NULL 值
具有依赖关系的并行操作执行
今天看到看到一篇MSDN文章《Parallelizing Operations With Dependencies》,作者是微软Parallel Computing Platform团队的一个开发经理。文中提供出一种用于并行执行一组具有依赖关系的操作的解决方案,这不由得想起我在一年之前写的一个具有相同的功能的组件。于是翻箱倒柜找了出来,进行了一些加工,与大家分享一下。
javascript.shop
2019/09/04
6K0
具有依赖关系的并行操作执行
不再迷惑,无值和 NULL 值
在关系型数据库的世界中,无值和NULL值的区别是什么?一直被这个问题困扰着,甚至在写TSQL脚本时,心有戚戚焉,害怕因为自己的一知半解,挖了坑,贻害后来人,于是,本着上下求索,不达通幽不罢休的决心(开个玩笑),遂有此文。
用户7657330
2020/08/14
1.3K0
null或空值的判断处理
1,错误用法一: if (name == "") {      //do something } 2,错误用法二: if (name.equals("")) {      //do something } 3,错误用法三: if (!name.equals("")) {      //do something } 我们来解说一下: 上述错误用法1是初学者最容易犯,也最不容易被发现的错误,因为它们的语法本身没问题,Java编译器编译时不报错。但这种条件可能在运行时导致程序出现bug,永远也不会为true,也就是时说,if块里的语句永远也不会被执行。 上述用法二,用法三 的写法,是包括很多Java熟手也很容易犯的错误,为什么是错误的呢?也许你会感到纳闷。 对,它们的写法本身没错,但是,少了一个null判断的条件,试想,如果name=null的情况下,会发生什么后果呢?后果是,你的程序将抛出NullPointerException异常,系统将被挂起,不再提供正常服务。 当然,如果之前已经对name作了null判断的情况例外。 正确的写法应该先加上name != null的条件,如例: if (name != null && !name.equals("")) {      //do something } 或者 if (!"".equals(name)) {//将""写在前头,这样,不管name是否为null,都不会出错。      //do something } 下面,我们举一个简单的例子: TestNullOrEmpty.java
似水的流年
2018/01/14
3.1K0
null或空值的判断处理
1,错误用法一: if (name == "") {      //do something } 2,错误用法二: if (name.equals("")) {      //do something } 3,错误用法三: if (!name.equals("")) {      //do something } 我们来解说一下: 上述错误用法1是初学者最容易犯,也最不容易被发现的错误,因为它们的语法本身没问题,Java编译器编译时不报错。但这种条件可能在运行时导致程
似水的流年
2018/01/18
3.6K0
NULL 值与索引(一)
    NULL值是关系数据库系统布尔型(true,false,unknown)中比较特殊类型的一种值,通常称为UNKNOWN或空值,即是未知的,不确定的。由于 NULL存在着无数的可能,因此NULL值也不等于NULL值,所以与NULL值相关的操作同样都为NULL值。正是基于这样一个特性,对于NULL值列上的B 树索引导致了is null/is not null不走索引的情形,下面描述了NULL值与索引以及索引NULL列上的执行计划,如何使得NULL值走索引的情形。 注:本文仅仅讨论的是B树索引上的NULL值,位图索引不在此范围之内。 一、null值与索引的关系
Leshami
2018/08/14
1.6K0
NULL 值与索引(二)
    在NULL值与索引(一)中讲述了null值与索引的一些基本情况。其主要的内容为,基于允许存在null值的索引列,其索引值不会被存储;其次 是由于这个特性导致了我们在使用is null时索引失效的情形;最后则是描述的通过为null值列添加not null约束来使得is null走索引。尽管我 们可以通过添加not null来解决is null走索引,当现实中的情况是仍然很多列根本是无法确定的,而必须保持其null特性。对于此种情形该如 何解决呢? 一、通过基于函数的索引来使得is null使用索引
Leshami
2018/08/14
1.4K0
null或空值的判断处理
1,错误用法一: if (name == "") {      //do something } 2,错误用法二: if (name.equals("")) {      //do something } 3,错误用法三: if (!name.equals("")) {      //do something } 我们来解说一下: 上述错误用法1是初学者最容易犯,也最不容易被发现的错误,因为它们的语法本身没问题,Java编译器编译时不报错。但这种条件可能在运行时导致程序出现bug,永远也不会为true,也就是时说,if块里的语句永远也不会被执行。 上述用法二,用法三 的写法,是包括很多Java熟手也很容易犯的错误,为什么是错误的呢?也许你会感到纳闷。 对,它们的写法本身没错,但是,少了一个null判断的条件,试想,如果name=null的情况下,会发生什么后果呢?后果是,你的程序将抛出NullPointerException异常,系统将被挂起,不再提供正常服务。 当然,如果之前已经对name作了null判断的情况例外。 正确的写法应该先加上name != null的条件,如例: if (name != null && !name.equals("")) {      //do something } 或者 if (!"".equals(name)) {//将""写在前头,这样,不管name是否为null,都不会出错。      //do something } 下面,我们举一个简单的例子: TestNullOrEmpty.java
似水的流年
2019/12/08
3.4K0

相似问题

不带关系的Symfony 4序列化实体

20

反序列化具有Symfony序列化组件关系的实体

613

Symfony 4-具有ManyToMany关系的对象的序列化

20

Symfony手动验证具有关系的实体

10

Symfony 2删除具有oneToMany关系的实体

23
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文