快速草图
我想删除父实体而不删除它的子节点,而是将引用的列设置为NULL
我的编程
我将onDelete="SET NULL"
添加到我的子实体的joinColumn中,如下所示:
/**
* @ORM\ManyToOne(targetEntity="Backend\Modules\Ads\Domain\Ad\Ad", inversedBy="rewarded")
* @ORM\JoinColumn(name="ad_id", referencedColumnName="id", onDelete="SET NULL")
*/
private $ad;
这是父实体关联:
/**
* @ORM\OneToMany(targetEntity="Backend\Modules\Ads\Domain\Rewarded\Rewarded", mappedBy="ad")
*/
private $rewarded;
问题
在删除父项时,它会抛出此错误:
Cannot delete or update a parent row: a foreign key constraint fails
我已经尝试添加"remove", "persist"
但没有取得多大成功。使用persist仍会导致错误,如果启用了remove,它将只删除该行。
到目前为止,我找不到任何可行的解决方案了,谢谢!
答案 0 :(得分:0)
我找到了解决方案。我想要设置NULL的实体依赖于另一个实体,这取决于我也删除的实体。上面使用的方法在需要时随处可用时完全正常工作。
感谢。