Det kan være bedre at køre en forespørgsel med IN-tilstand frem for at iterere.
$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();
- Fordele:kører hurtigere, ingen grund til at gentage
- Ulemper:du kan ikke tilslutte dig preRemove
Med hensyn til ophedet "hvor skal man sætte det"-debat, så tør at sætte det i controlleren, hvis du vil. Det er helt op til dig. Det kan dog være mere nyttigt for dig i fremtiden, hvis du lander koden i den dedikerede doktrinopbevaringsklasse. Det skal være meget nemt at gøre og gøre det nemt at ændre/vedligeholde.