मेरे पास एक संग्रह में एक विधि है जहां मैं इस संग्रह पर दो अलग-अलग ऑपरेशन करना चाहता हूं। इसलिए, मैं एक ही संग्रह की दो अलग-अलग प्रतियां चाहता हूं, और फिर दो संग्रह में से एक को फिर से मूल संग्रह को सौंप दूंगा और इसे वापस कर दूंगा।
इसे सरल बनाने के लिए, मान लीजिए कि मेरे पास एक ऑब्जेक्ट संग्रह है जिसे कहा जाता है $collection
।
अब, मैं इसे PHP क्लोनिंग के साथ आज़मा रहा हूँ क्योंकि मुझे नहीं पता कि कोई Magento संग्रह क्लोनिंग इनबिल्ट है या नहीं।
$coll1 = clone $collection;
$coll2 = clone $collection;
अब मैं मूल संग्रह के इन दो अलग-अलग क्लोनों पर अलग-अलग ऑपरेशन करने की कोशिश कर रहा हूं, कुछ ऐसा।
$coll1->getSelect()->where('some where condition');
$coll2->getSelect()->where('some different where condition');
if($coll1->count() == 0) {
$collection = $coll2;
} else {
$collection = $coll1;
}
लेकिन अजीब बात यह है कि, इन दोनों क्लोन संग्रहों में उन दोनों स्थितियों को निर्दिष्ट किया गया है जहाँ पर असाइन किया गया है! $ coll2 की स्थिति के साथ $ coll2 की स्थिति में $ Coll2 शर्त लागू की जाती है, और इसके विपरीत।
क्या किसी को पता है कि यह कैसे प्राप्त करने के लिए?
धन्यवाद!
$collection->getSelect()
संग्रह में कहां और कहां सहेजा गया है, इसकी जानकारी नहीं है।