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_B0A93A77BB333E0DFOREIGN KEY (reportId) REFERENCESreport(id))
オプションはどこで使用しcascade、どのオプションを使用すればよいですか (detachまたはremove)?
これを理解するために多くの試行錯誤を行うことができますが、専門家の説明を望んでいたので、見落としはありません。