[Symfony2]: 一个实体的级联元素删除 如何拥有生命周期属性

[Symfony2]: Cascading element deletion of an entity How to have a life cycle attribute

我正在使用 symfony 2.7 作为 CMF。

我有 2 个实体 user 和 Mission 。任务具有生命周期属性(createdBy,updatedBy)。

当我尝试删除用户时出现此错误:

SQLSTATE[23000]: Integrity constraint violation: 1451 Cannot delete or update a parent row: a foreign key constraint fails (XXXX.mission, CONSTRAINT FK_19653DBD16FE72E1 FOREIGN KEY (updated_by) REFERENCES fos_user_user (id))

这是实体任务中我的生命周期元素:

   /**
 * @ORM\ManyToOne(targetEntity="Application\Sonata\UserBundle\Entity\User")
 * @ORM\JoinColumn(name="created_by", referencedColumnName="id" , onDelete="CASCADE")
 */
private $createdBy;

/**
 * @ORM\ManyToOne(targetEntity="Application\Sonata\UserBundle\Entity\User")
 * @ORM\JoinColumn(name="updated_by", referencedColumnName="id" , onDelete="CASCADE")
 */
private $updatedBy;

感谢帮助。

将它放在用户端的学说关系中,例如:

* @ORM\OneToMany(targetEntity="your\entity\mission", cascade={"delete"})

编辑:

如果你不能访问用户实体(不明白为什么你不能......)你可以做一些有点丑陋的事情,比如将任务附加到用户,删除它然后删除用户

在您的用户实体中: @ORM\OneToMany(targetEntity="xx",mappedBy="mission_id",cascade={"persist"})

在您的任务实体中:

@ORM\ManyToOne(targetEntity="Application\Sonata\UserBundle\Entity\User")
@ORM\JoinColumn(name="created_by", referencedColumnName="id" , 
onDelete="CASCADE")