डॉक्ट्रिन, symfony2 का उपयोग कर डेटाबेस में एकाधिक रिकॉर्ड अपडेट करने का सबसे अच्छा तरीका क्या है?सिम्फनी - एकाधिक रिकॉर्ड अपडेट करें
मुझे रिकॉर्ड्स आईडी की सरणी मिलती है जिसे मुझे अपडेट करना है।
मैं प्रत्येक रिकॉर्ड को अपने सरणी से प्राप्त सरणी से कॉलम show_order में असाइन करना चाहता हूं। तो अगर मैं सरणी $ सरणी = सरणी (22, 1, 5, 10) प्राप्त तो मैं
$i = 0;
foreach($array as $a) {
$record = $this->getDoctrine->getRepository('AcmeBundle:SomeEntity')->findOneById($a);
if ($record != null) $record->setOrder($i++);
}
$this->getDoctrine()->getEntityManager()->flush();
क्या करना चाहते हैं, लेकिन यह भयानक तरीका है, क्योंकि प्रत्येक रिकॉर्ड के लिए मैं किसी एक का चयन करते हैं, तो प्रश्नों की संख्या है पर)।
इसे बेहतर कैसे करें?
मैं अब एक विचार के लिए मिल गया है: सभी रिकॉर्ड प्राप्त जांच करें कि कौन क्रम बदल गया है और केवल अद्यतन उन्हें। लेकिन मैं उस समाधान के कारण संतुष्ट नहीं हूं। तो यह सभी रिकॉर्ड्स प्राप्त करने के लिए एक चयन करेगा, कुछ चयन (इकाई ऑब्जेक्ट्स प्राप्त करने के लिए) और कुछ अपडेट (या शायद एक, क्योंकि मुझे लगता है कि फ्लश() के बाद अद्यतन लागू किया गया है)। –
यदि Doctrine2 का उपयोग करके कोई अच्छा समाधान नहीं है तो शायद मुझे इसे स्पष्ट PHP में करना चाहिए और केस का उपयोग कब करें ... फिर ... एसक्यूएल क्वेरी में? –