Solución:
La definición de tu relación parece estar bien. ¿Cuál es la forma en que se elimina al cliente? Quiero decir que Doctrine no establece “ON DELETE CASCADE” directamente en la base de datos. Por lo tanto, si elimina la entidad del cliente de una manera diferente a la de “doctrine”, los comentarios no se eliminarán.
Puede decirle a doctrine que establezca esto directamente en la base de datos, agregando una anotación:
@ORMJoinColumn(name="icustomer_id", referencedColumnName="icustomer_id", onDelete="CASCADE")
Pero si está intentando eliminar la entidad en la forma correcta de la doctrina y esto todavía no funciona, intente agregar “orphanRemoval” a verdadero, debería ayudar:
// Customer.php
/**
* @var string $addresses
* @ORMOneToMany(targetEntity="MPUserRegistrationBundleEntityAddress", mappedBy="customer", cascade={"remove"}, orphanRemoval=true)
*/
protected $addresses;
Tuve bastantes problemas para hacer que esto funcionara. Aquí hay algunos puntos que pueden ayudar a quienes tienen problemas similares:
- La entidad propietaria necesita
@OneToMany( ... cascade={"remove"}
ocascade={"all"} )
- La entidad secundaria también necesita
@JoinColumn(... onDelete="CASCADE")
- Además, si está modificando el
onDelete="CASCADE"
parte, creo que deberá actualizar su esquema antes de que los cambios surtan efecto.
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)