I have a three entity:
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 ????
}
}
When I delete the User, Conversation deleted by CASCADE. Question – how to remove and Message when deleted Coversation is last relation of Message.
I think what you’re looking for is Doctrine2 “Orphan removal“