Php 保存从数据库中删除的反序列化实体
我正在创建一个测验应用程序,我有以下几点:Php 保存从数据库中删除的反序列化实体,php,symfony,doctrine,Php,Symfony,Doctrine,我正在创建一个测验应用程序,我有以下几点: 测验 问题: 答复 与关系 测验manytomy问题 问题OneToMany答案 我正在用序列化实体编辑客户机上的问题答案,然后当我尝试保存时,我将JSON反序列化回实体 实体: 测验: 答复: /** * @ORM\ManyToOne(targetEntity="Quiz\CoreBundle\Entity\Question", inversedBy="answers", cascade={"merge", "remove"})
manytomy
问题
问题OneToMany
答案
我正在用序列化实体编辑客户机上的问题答案,然后当我尝试保存时,我将JSON反序列化回实体
实体:
测验:
答复:
/**
* @ORM\ManyToOne(targetEntity="Quiz\CoreBundle\Entity\Question", inversedBy="answers", cascade={"merge", "remove"})
* @Groups({"public", "admin"})
*/
protected $question;
保存操作:
$toSave = $this->get('request')->getContent();
/* @var $s Quiz */
$s = $serializer->deserialize ($toSave, 'Quiz\CoreBundle\Entity\Quiz', 'json');
$em->merge($s);
$em->flush();
当我添加/更新问题/答案时,它可以正常工作,但当我尝试从问题中删除问题或答案时,它不起作用。有什么帮助吗?“不起作用”是一个宽泛的词。
$s
是否具有有效的对象?merge()
时,$s
会发生什么情况?@JovanPerovic是的,这是一个有效的对象。不工作意味着数据库中没有任何事情发生。那么,我假设$s
包含有效的非空id
字段。试着做:$s2=$em->merge($s)
,然后看看$s2
将包含什么。@JovanPerovic$s2
与$s
相同。你有没有解决这个问题的运气,我也遇到了同样的麻烦?
/**
* @ORM\ManyToOne(targetEntity="Quiz\CoreBundle\Entity\Question", inversedBy="answers", cascade={"merge", "remove"})
* @Groups({"public", "admin"})
*/
protected $question;
$toSave = $this->get('request')->getContent();
/* @var $s Quiz */
$s = $serializer->deserialize ($toSave, 'Quiz\CoreBundle\Entity\Quiz', 'json');
$em->merge($s);
$em->flush();