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