我试图了解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;
短信
/**
* @ORM\ManyToOne(targetEntity="Report")
*/
protected $report;
现在我想删除一个Response
实体,但我得到了
SQLSTATE [23000]:完整性约束违规:1451 无法删除或更新父行:
外键约束失败(mybundle
.sms
, CONSTRAINTFK_B0A93A77BB333E0D
FOREIGN KEY (reportId
) REFERENCESreport
(id
))
我在哪里使用该cascade
选项以及我应该使用哪个选项(detach
或remove
)?
我可以做很多试验和错误来解决这个问题,但我希望得到专家的解释,所以我不会忽略一些事情。