我有一个类类别,其中包含:
/**
* @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。
我尝试将onDelete="CASCADE"
放到ManyToOne注释中,然后转到OneToMany,我尝试了上面显示的内容,我尝试在OneToMany注释中使用cascade={"remove"}
,但没有任何效果!我也找不到一个例子。你能帮我吗?
答案 0 :(得分:50)
这一定是一个疯狂的答案,但您是否更新了数据库架构? onDelete="SET NULL"
在数据库级别,它必须在innoDB上工作。