2013-02-01 44 views
0

父母的关系我有三个实体:Symfony2的:我怎样才能删除删除前

class User 
{ 
    @ORM\OneToMany(targetEntity="Conversation", mappedBy="sender", cascade={"remove"}) 
    private $send_messages; 
} 

///

class Conversation 
{ 
    /** 
    * @ORM\ManyToOne(targetEntity="User", inversedBy="send_messages") 
    * @ORM\JoinColumn(name="sender_id", referencedColumnName="id", onDelete="SET NULL") 
    */ 
    private $sender; 
} 

///

class Message 
{ 
    /** 
    * @ORM\OneToMany(targetEntity="Conversation", mappedBy="message") 
    */ 
    private $conversations; 

    /** 
    * @ORM\PreRemove 
    */ 
    function onPreRemove() 
    { 
     // how remove parent relationship ???? 
    } 
} 

当我删除用户,会话由CASCADE删除。问题 - 如何删除和删除时消息封面是消息的最后一个关系。

+0

克莱门特你好,我想 ' /** * @ORM \一对多(targetEntity = “谈话”,的mappedBy = “消息”,orphanRemoval = TRUE) */ 私人谈话$; ' 但不工作 –

回答

1

我想你要找的是Doctrine2“Orphan removal

如果A型的实体包含私有实体的引用B,则如果从A到B的引用被移除实体B应也被删除,因为它不再使用。

相关问题