Det kan vara bättre att köra en fråga med IN-villkor snarare än att iterera.
$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();
- Fördelar:går snabbare, du behöver inte upprepa
- Nackdelar:du kan inte ansluta till preRemove
När det gäller hetsiga "var ska man lägga den"-debatten, våga lägga den i kontrollern om du vill. Det är helt upp till dig. Det kan dock vara mer användbart för dig i framtiden om du landar koden i den dedikerade doktrinförvaret. Det ska vara väldigt enkelt att göra och göra det enkelt att ändra/underhålla.