Я пытаюсь понять параметр cascade
в Доктрина в Symfony2.
Я хотел бы иметь возможность удалить дочерний объект (и не запускать ошибку ограничения внешнего ключа.)
У меня есть 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
ИНОСТРАННЫЙ КЛЮЧ (reportId
) ССЫЛКИreport
(id
))
Где я могу использовать опцию cascade
и какую опцию использовать (detach
или remove
)?
Я могу сделать много проб и ошибок, чтобы понять это, но я надеялся на экспертное объяснение, поэтому я ничего не забываю.