किसी क्वेरी को पुनरावृत्त करने के बजाय 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();
- लाभ:तेजी से चलता है, पुनरावृति करने की कोई आवश्यकता नहीं है
- कमियां:आप पूर्व-निकालें में शामिल नहीं हो सकते
गर्म करने के लिए "इसे कहाँ रखा जाए" बहस, यदि आप चाहें तो इसे नियंत्रक में रखने की हिम्मत करें। यह पूरी तरह आप पर निर्भर है। हालाँकि, यह भविष्य में आपके लिए अधिक उपयोगी हो सकता है यदि आप कोड को समर्पित सिद्धांत भंडार वर्ग में रखते हैं। यह करना बहुत आसान होना चाहिए और इसे बदलना / बनाए रखना आसान बनाता है।