Saltar al contenido

Doctrine 2 cascade = {” remove “} no parece estar funcionando

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:

  1. La entidad propietaria necesita @OneToMany( ... cascade={"remove"} o cascade={"all"} )
  2. La entidad secundaria también necesita @JoinColumn(... onDelete="CASCADE")
  3. 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)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *