最好使用IN条件而不是迭代来运行查询。
$ids = $this->createQueryBuilder('product')->join('..your joins..')->where('..your wheres..')->select('product.id')->getQuery()->getResult();$this->createQueryBuilder('product') ->where('product.id in (:ids)') ->setParameter('ids', $ids) ->delete() ->getQuery() ->execute();
- 好处:运行速度更快,无需迭代
- 缺点:您无法加入preRemove
对于激烈的“放置在哪里”的辩论,如果愿意,可以将其放在控制器中。这完全取决于您。但是,如果您将代码放入专用的学说存储库类中,那么将来对您可能会更有用。它应该很容易做,并且易于更改/维护。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)