究竟如何使用onDelete ="SET NULL" - Doctrine2

Fae*_*ery 32 php doctrine-orm

我有一个类别包含这个:

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

和一个朋友这个:

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

我想要的是能够删除类别,无论是否有这个类别的朋友,如果有 - 这个朋友的类别字段被设置为NULL.

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

Zel*_*jko 50

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