¿Cómo uso la opción de cascada en la doctrina de Symfony2?
Estoy tratando de entender elcascade
opción enDoctrina enSymfony2.
Me gustaría poder eliminar una entidad secundaria (y no activar el error de restricción de clave externa).
Tengo 3 entidades:
Informe
/**
* @ORM\OneToMany(targetEntity="Response", mappedBy="report")
*/
protected $responses;
/**
* @ORM\OneToMany(targetEntity="Response", mappedBy="report")
*/
protected $sms;
Respuesta
/**
* @ORM\ManyToOne(targetEntity="Report", inversedBy="responses")
*/
protected $report;
SMS
/**
* @ORM\ManyToOne(targetEntity="Report")
*/
protected $report;
Ahora me gustaría borrar unResponse
entidad pero me da
SQLSTATE [23000]: Infracción de la restricción de integridad: 1451 No se puede eliminar ni actualizar una fila principal:
una restricción de clave externa fallamybundle
.sms
, RESTRICCIONFK_B0A93A77BB333E0D
CLAVE EXTERNA (reportId
) REFERENCIASreport
(id
))
Donde uso elcascade
opción y qué opción debo usar (detach
oremove
)?
Puedo hacer muchas pruebas y errores para resolver esto, pero esperaba una explicación experta, así que no me olvido de nada.