私は3つのエンティティを持っています:
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 によって削除されます。質問 - 削除方法と削除時のメッセージ カバーセーションはメッセージの最後の関係です。