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();