Mungkin lebih baik menjalankan kueri dengan kondisi IN daripada iterasi.
$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();
- Manfaat:berjalan lebih cepat, tidak perlu mengulang
- Kekurangan:Anda tidak dapat menghubungkan ke preRemove
Mengenai perdebatan "di mana harus meletakkannya" yang memanas, berani memasukkannya ke dalam pengontrol jika Anda mau. Itu sepenuhnya terserah Anda. Namun, mungkin akan lebih berguna bagi Anda di masa mendatang jika Anda mendapatkan kode di kelas repositori doktrin khusus. Seharusnya sangat mudah dilakukan dan membuatnya mudah untuk diubah/dipertahankan.