Decir que tengo las siguientes clases:Cómo eliminar entidades de forma masiva en una relación ManyToMany en Doctrine 2?
class Store
{
/**
* @ManyToMany(targetEntity="PaymentMethod")
*/
protected $paymentMethods;
}
class PaymentMethod
{
}
Cuando borramos (o simplemente desactivar, sin llegar a eliminar de la base de datos) una PaymentMethod
, nos gustaría que este paymentMethod
consigue quitado de todas las colecciones Store::$paymentMethods
.
Hasta ahora, hemos estado usando consultas SQL primas en la tabla de unión para esto:
DELETE FROM StorePaymentMethod WHERE paymentMethodId = ?
¿Hay una manera de hacer que en Doctrina, preferiblemente en DQL?
déjenme aclarar esto. ¿Desea eliminar los métodos de pago eliminados de la lista en la clase Store? borrarlo de la base de datos no lo eliminará de la lista. – jere
Si es muchos a muchos, ¿no puede simplemente establecer la colección '$ stores' en' PaymentMethod' en una colección vacía y persistir? Debería invalidar todos los objetos 'Store' en la memoria para asegurarse de que sus enlaces recíprocos no conserven los registros. Aunque en un mundo ideal, los métodos de acceso que escribes para realizar el vacío irían a través de las 'Tiendas 'eliminando los enlaces recíprocos. – Orbling