如何确切地使用 onDelete = “SET NULL” - Doctrine2

2022-08-30 13:25:33

我有一个类类别,其中包含以下内容:

/**
 * @ORM\OneToMany(targetEntity="Friend", mappedBy="category")
 * @ORM\OrderBy({"name" = "ASC"})
 */
protected $friends;

和一个班级朋友与这个:

 /**
 * @ORM\ManyToOne(targetEntity="Category", inversedBy="friends")
 * @ORM\JoinColumn(name="category_id", referencedColumnName="id",  onDelete="SET NULL")
 */
protected $category;

我想要的是能够删除类别,无论此类别中是否有一些朋友,如果有 - 此朋友的类别字段设置为NULL。

我试图把ManyToOne注释,然后放到OneToMany,我尝试了上面显示的内容,我尝试在OneToMany注释中使用,没有任何效果!我也找不到一个例子。你能帮帮我吗?onDelete="CASCADE"cascade={"remove"}


答案 1

这一定是一个疯狂的答案,但你是否更新了数据库架构? 在数据库级别,它必须在 innoDB 上工作。onDelete="SET NULL"


答案 2

推荐