Symfony2のDoctrineのcascade
オプションを理解しようとしています。
子エンティティを削除できるようにしたい (外部キー制約エラーをトリガーしない)。
私は3つのエンティティを持っています:
報告
/**
* @ORM\OneToMany(targetEntity="Response", mappedBy="report")
*/
protected $responses;
/**
* @ORM\OneToMany(targetEntity="Response", mappedBy="report")
*/
protected $sms;
応答
/**
* @ORM\ManyToOne(targetEntity="Report", inversedBy="responses")
*/
protected $report;
SMS
/**
* @ORM\ManyToOne(targetEntity="Report")
*/
protected $report;
Response
エンティティを削除したいのですが、
SQLSTATE[23000]: 整合性制約違反: 1451 親行を削除または更新できません:
外部キー制約が失敗しました (mybundle
.sms
, CONSTRAINTFK_B0A93A77BB333E0D
FOREIGN KEY (reportId
) REFERENCESreport
(id
))
オプションはどこで使用しcascade
、どのオプションを使用すればよいですか (detach
またはremove
)?
これを理解するために多くの試行錯誤を行うことができますが、専門家の説明を望んでいたので、見落としはありません。