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();