with onetomany manytomany many foreign fields php many-to-many doctrine2 dql

php - onetomany - manytomany doctrine symfony



¿Cómo eliminar entidades a granel en una relación ManyToMany en Doctrine 2? (1)

Digamos que tengo las siguientes clases:

class Store { /** * @ManyToMany(targetEntity="PaymentMethod") */ protected $paymentMethods; } class PaymentMethod { }

Cuando eliminamos (o simplemente desactivamos, sin quitar realmente de la base de datos) un PaymentMethod , nos gustaría que este paymentMethod se elimine de todas las colecciones de Store::$paymentMethods .

Hasta ahora, hemos estado usando consultas SQL sin procesar en la tabla de unión para esto:

DELETE FROM StorePaymentMethod WHERE paymentMethodId = ?

¿Hay alguna manera de hacerlo en Doctrine, preferiblemente en DQL?


Algo en esta línea?

$qb = $em->createQueryBuilder(); $qb->delete(''StorePaymentMethod'', ''spm'') ->where(''spm.paymentMethodId = : paymentMethodId'') ->setParameter(''paymentMethodId'', $id); return $qb->getQuery()->getResult();