34

我有一个包含这个的类类别:

/**
 * @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,我尝试了上面显示的内容,我尝试cascade={"remove"}在 OneToMany 注释中使用,但没有任何效果!我也找不到一个例子。请你帮助我好吗?

4

1 回答 1

53

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

于 2012-09-18T10:22:43.053 回答