2012-09-18 37 views
32

我有一個類類別包含此:究竟如何使用onDelete = 「SET NULL」 - Doctrine2

/** 
* @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"},並沒有任何工作!我也找不到一個例子。你可以幫我嗎?

回答

47

這必須是一個瘋狂的答案,但你更新數據庫架構? onDelete="SET NULL"在數據庫級別,它必須在innoDB上工作。

+1

你是天才!非常感謝! – Faery