首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >Symfony2 ObjectNormalizer去denormalize回调

Symfony2 ObjectNormalizer去denormalize回调
EN

Stack Overflow用户
提问于 2015-07-13 02:54:51
回答 1查看 2.1K关注 0票数 4

在调用setCallbacks以将规范化值转换回对象时调用的Symfony\Component\Serializer\Normalizer\ObjectNormalizer上是否可以使用Symfony\Component\Serializer\Serializer.deserialize()

我知道反向是有可能的,因为当调用Symfony\Component\Serializer\Serializer.serialize()时,对象可以被规范化。我只是不知道如何进行反向归一化。

使用setCallbacksFoo转换为Id的实体上的序列化示例

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
    $encoder = new JsonEncoder();
    $normalizer = new ObjectNormalizer();
    $normalizer->setCallbacks(array(
        'foo' => function ($foo) {
            return $foo instanceof Foo
                ? $foo->getId()
                : null;
        },
    ));
    $serializer = new Serializer(array($normalizer), array($encoder));

    $json = $serializer->serialize($entity, 'json');

相反,我想做的是:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$em = static::getEntityManager();

    $encoder = new JsonEncoder();
    $normalizer = new ObjectNormalizer();
    $normalizer->setCallbacks(array(
        'foo' => function ($foo) use($em) {
            return !is_null($foo)
                ? $em->getReference('\Entity\Foo', $foo)
                : null;
        },
    ));
    $serializer = new Serializer(array($normalizer), array($encoder));

    return $serializer->deserialize($entity, $classname, 'json');

我所犯的错误:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Catchable fatal error: Argument 1 passed to \Entity\Bar::setFoo() must be an instance of \Entity\Foo, integer given

或者在deserialize之前是否有可以执行的预步骤?

EN

回答 1

Stack Overflow用户

发布于 2015-09-17 05:05:04

请检查here,看看确切的getReference是什么。

没有办法让getReference()检查数据库是否存在所引用的对象。

如果您想要进行反分区,则必须使用$em->getRepository('\Entity\Foo')->find($foo)

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

https://stackoverflow.com/questions/31381492

复制
相关文章
回调
回调简单而言:在一个类(A)的方法(a)中调用另一个类(B)的方法(b),当方法(b)执行完之后就调用类(A)中的方法(c),这就是回调的过程,是不是很简单?简单分析可以知道一个类(A)持有另一个类(B)的引用,方法(c)就叫做回调函数,画成UML图就如下所示:
晚上没宵夜
2020/03/10
2.6K0
​29 - 回调函数和回调地狱
原文地址:https://dev.to/bhagatparwinder/callback-functions-callback-hell-79n
前端黑板报
2022/12/01
4.6K0
什么是回调地狱?如何解决回调地狱问题_地狱回调
这个问题呢,需要从Node.js的API说起,这里就会有人问了?博主你不是说回调地狱的问题吗,怎么说到API了,别急,看博主一步一步的解释给你听:
全栈程序员站长
2022/11/15
3.2K0
七、回调
修改PspNotifyEnableMask为00000009,创建和退出进程时就不会触发回调
zhang_derek
2022/09/29
1.6K0
关于回调
爱学习的前端歌谣
2023/10/18
1760
关于回调
回调函数
  有点类似模板的功能,可以使用函数指针作为参数,当调用函数时,使用void *进行传递参数,细致比较时,再用int *之类的进行强制转换。回调函数,其实就是在参数中定义函数,调用时,回到主函数去调用这个函数。仔细用法如下: 首先定义查找函数 Node * search_list(Node *node, void const *value, int (*compare)(void const *,void const *)){ while(node!=NULL){ if(compar
用户1154259
2018/01/17
3.3K0
回调函数
回调函数
什么是回调函数,上面的问题说的是不是很空洞,不是太形象,下面是知乎上的一位网友给的答案:
LiosWong
2018/10/29
3.8K0
回调地狱
一个函数,作为参数的形式传给另一个函数调用,那么这个这个函数就叫做回调函数。 当然回调函数很常见,如下
用户4793865
2023/01/12
1.4K0
回调地狱
前言 从前一文中你真的了解回调?我们已知道回调函数是必须得依赖另一个函数执行调用,它是异步执行的,也就是需要时间等待,典型的例子就是Ajax应用,比如http请求,在不刷新浏览器的情况下,当你执行DO
itclanCoder
2020/10/28
2.3K0
回调地狱
回调函数
原文链接:https://note.noxussj.top/?source=cloudtencent 什么是回调函数? 简单的来说,一个函数作为另外一个函数的参数,可以称为回调函数。这个理解其实不完全
菜园前端
2023/05/20
1.7K0
使用委托实现同步回调与异步回调
使用委托可以执行的一项有用操作是实现回调。回调是传入函数的方法,在函数结束执行时调用该方法。 例如,有一个执行一系列数学操作的函数。在调用该函数时,也向其传递一个回调方法,从而在函数完成其计算工作时,调用回调方法,向用户通知计算结果。 同步回调    首先声明两个方法: AddTwoNumbers():接受两个整型实参以及一个类型委托 ResultCallback():接受一个字符串,并显示出来。代码如下: using System; using System.Collections.Generic
hbbliyong
2018/03/05
3K0
使用委托实现同步回调与异步回调
回调函数案例
内置数据类型: #define _CRT_SECURE_NO_WARNINGS #include<stdio.h> //回调函数---通用数组型打印案例 //参数1:数组首地址 参数2:数组中每个元素的大小 参数3:数组元素个数 参数4:回调函数对数组内容进行输出 void printArray(void* array, int size, int len, void(*MyPrint)(void *)) { //void*没有数组的概念,因此如果想通用可以用char*,如果用int*的话,打印字符串
大忽悠爱学习
2021/03/04
3.9K0
Fragment回调Activity
如果你需要在fragment中处理一些事情,事情的处理结果或者你需要告 诉activity马上要做什么事,这时候就需要和activity进行通讯。包括很多fragment在viewpager中的情况,而且可以保证activity能即时进行响应。相比发送广播,性能更好,代码更少。
坑吭吭
2018/08/31
1.8K0
JavaScript回调函数
JavaScript中的回调函数是一种特殊类型的函数,它被传递给其他函数作为参数,并在特定的事件或条件发生时被调用。回调函数用于处理异步操作、事件处理、定时器等情况,以确保代码在合适的时机执行。在JavaScript中,回调函数常用于处理非阻塞的操作,以避免程序的停顿和等待。
堕落飞鸟
2023/05/17
2.5K0
回调函数的工作机制 回调函数的用途
在一般人的眼中,对回调函数并不是十分的了解。实际上,在现在的互联网技术上这种函数有着十分重要的地位。这种函数不仅仅可以使得编程的效率大大提升,还是实现一些特殊功能的必须组成部分。那么什么是回调函数?这样的函数究竟有什么作用?下面就来为大家介绍一下。
用户8739405
2021/07/09
6.8K0
Angularjs的回调
$q.reject() 方法是在你捕捉异常之后,又要把这个异常在回调链中传下去时使用:
星回
2018/08/02
1.7K0
Java 回调机制
Teacher 中,有一个解决问题的对象:Student,在Student中解决问题之后,再通过引用调用Teacher中的tellAnswer接口,所以叫回调。
Yano_nankai
2018/10/08
2.5K0
Java 回调机制
Ajax 的回调
页面上有两个button,以上js代码为button添加click事件。会输出什么样的结果呢?
用户7293182
2022/01/17
4.4K0
回调参数详解
字面上的理解,回调函数就是传递一个参数化的函数,就是将这个函数作为一个参数传到另一个主函数里面,当那一个主函数执行完之后,再执行传进去的作为参数的函数。走这个过程的参数化的函数 就叫做回调函数。换个说法也就是被作为参数传递到另一个函数(主函数)的那个函数就叫做 回调函数
九霄道长
2021/03/02
2.7K0
回调函数实践
之前我们写过一个冒泡排序,并且优化了它,但是他仅仅只能做升序,如果我们需要让他降序会有几种办法? 1.修改排序代码 2.回调函数 如果是第一种我们只需要 修改>变成<即可降序 #include<std
用户7272142
2023/10/11
1560
回调函数实践

相似问题

RxJS去嵌套回调

12

属性"publishedAt“值的去denormalize失败

11

获取App去授权回调

27

Symfony/Doctrine -用关系进行去Denormalize更新

11

Facebook去授权回调C#

10
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

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

洞察 腾讯核心技术

剖析业界实践案例

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