2011-11-09 32 views
1

我問,如果有一種方法,這樣,當一個刪除父(PK),這種傳播設置NULL所有的受供養子女(所有FKS),而不需要寫手動編寫這樣的代碼。
原則可以自己處理這個..?
例如:刪除在symfony中/教義外鍵

/** 
* @ORM\OneToMany(targetEntity="Frame", mappedBy="notice") 
* 
*/ 
protected $frames; 

-*AND*- 

/** 
* @ORM\ManyToOne(targetEntity="Notice", inversedBy="frames") 
* @ORM\JoinColumn(name="notice_id", referencedColumnName="id", nullable=true) 
* 
*/ 
protected $notice; 

當我刪除通知,我希望所有的有這個特殊的通知外國鍵,有公告欄沒有設置,或設置爲NULL。

有沒有辦法..?
如果沒有,解決這個問題的最佳方法是什麼?

回答

1
+0

格雷嗨,那是快...
我嘗試級聯=「堅持」,堅持=「刪除」,沒有工作......
是我做錯了什麼? – xeon

+0

我認爲你正在尋找的是'detach'。確保你在關係的好方面使用它。 – greg0ire

+0

我試圖在任何一個課上使用它,沒有運氣...... !!! ORM \ ManyToOne(targetEntity =「Notice」,inversedBy =「frames」,cascade = {「detach」})'ORM \ JoinColumn(name =「notice_id」,referencedColumnName =「id」,nullable = true )' 和另一類: 'ORM \ OneToMany(targetEntity =「Frame」,mappedBy =「notice」,cascade = {「detach」})' – xeon

0

嘗試添加父類中你的schema.yml文件onDelete: CASCADE並重新生成該文件的數據庫。那麼你的ORM將有行爲

好運

+0

嘿安德魯,我試着將它添加到子類,並沒有奏效它試圖刪除chidren以及刪除父時 _code_。: 'ORM \ ManyToOne(targetEntity =「Notice」,inversedBy =「frames」)' 'ORM \ JoinColumn(name =「notice_id」,referencedColumnName =「id」,nullable = true,onDelete =「CASCADE」)' 另注:?我只有PHP註解..所以怎麼寫,而不是陽明?? – xeon

+0

,這樣你在哪裏定義表你能給我們定義它們請代碼 –

+0

[http://pastebin.com/ a6CR2 fSs] notice.php – xeon