假设我有以下类:
class Store
{
/**
* @ManyToMany(targetEntity="PaymentMethod")
*/
protected $paymentMethods;
}
class PaymentMethod
{
}
当我们删除(或者只是禁用,而不从数据库中实际删除)PaymentMethod
时,我们希望从所有Store::$paymentMethods
集合中删除该paymentMethod
。
到目前为止,我们一直在连接表上使用原始SQL查询:
DELETE FROM StorePaymentMethod WHERE paymentMethodId = ?
有没有一种方法可以在条令中做到这一点,最好是在DQL中?
这是什么?
$qb = $em->createQueryBuilder();
$qb->delete('StorePaymentMethod', 'spm')
->where('spm.paymentMethodId = : paymentMethodId')
->setParameter('paymentMethodId', $id);
return $qb->getQuery()->getResult();