【发布时间】:2020-08-11 10:20:52
【问题描述】:
假设我有两个实体,Project 和 User 有关系。
项目.php
/**
* @var User
*
* @ORM\ManyToOne(targetEntity="User")
* @ORM\JoinColumn(onDelete="SET NULL")
*/
private $creator;
当我删除 User 实体时,doctrine 将 User 对象(没有 ID)留在 Project 实体中。在正常情况下,这很好,但我使用的是DomainEvents。在这种情况下,删除用户实体后,DomainEvent 触发将一些数据保存在数据库中,并且二次保存数据(删除后)会抛出此错误。发生这种情况是因为现在在 Project 实体中,我们有分离的(来自 EM)User 没有 ID 的对象。
我想到了一个监听器,它会在删除后删除实体中的空对象,但我不确定这是一个好的变体
解决此错误的最佳变体是什么?
【问题讨论】:
标签: symfony doctrine-orm symfony4