2011-11-09 33 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