आपके पास magento से डेटा एक्सेस करने के कई तरीके हैं:
-
लोड () => का उपयोग करके यह एक मॉडल के सापेक्ष सभी डेटा (विशेषताओं) को लोड करता है। यह बहुत धीमा और प्रदर्शन-हत्यारा है। किसी उत्पाद के लिए, आपको केवल उत्पाद पृष्ठ पर लोड() का उपयोग करना चाहिए (क्योंकि उस पृष्ठ पर आपके द्वारा उपयोग किया जाने वाला सभी डेटा एक ही ऑब्जेक्ट के सापेक्ष है .. ताकि आप इसे पूरी तरह से लोड कर सकें)
-
संग्रह => का उपयोग करते हुए जब आपको वस्तुओं की एक सूची प्राप्त करने की आवश्यकता होती है, तो आपको एक संग्रह (कम से कम) का उपयोग करना चाहिए। आप जिस विशेषता सूची को पुनः प्राप्त करना चाहते हैं, उसे तय करना आप पर निर्भर है। आप चयन/फ़िल्टर करने के लिए विशेषता जोड़ सकते हैं और संग्रह एसक्यूएल को ईएवी टेबल आदि में शामिल करने का प्रबंधन करेगा ... पृष्ठभूमि में
-
जटिल वस्तुओं के साथ व्यवहार करते समय कस्टम एसक्यूएल => संग्रह का उपयोग धीमा हो सकता है (एक संग्रह कई एसक्यूएल को तालिका में शामिल करता है जिसकी आपको आवश्यकता नहीं हो सकती है) ... बीडीडी से डेटा तक पहुंचने की अंतिम विधि अपने संसाधन मॉडल में अपना स्वयं का एसक्यूएल बनाना है। पी>
आपके द्वारा दिखाए गए स्क्रिप्ट में, एक बड़ी त्रुटि है:आप एक संग्रह पर चलने वाले फ़ोरैच के अंदर एक पूर्ण मॉडल लोड करते हैं। आपको ऐसा कभी नहीं करना चाहिए, अगर आपको उत्पाद लोड करना है(), मुझे लगता है कि ऐसा इसलिए है क्योंकि आपको संग्रह में कोई विशेषता नहीं मिली है? उस स्थिति में आपको केवल विशेषता को पुनः प्राप्त करने के लिए संग्रह को संशोधित करना होगा...
उदाहरण के लिए किसी उत्पाद के लिए, magento आपके द्वारा तत्काल किए जाने वाले किसी भी उत्पाद-> संग्रह में विशेषताओं को स्वचालित रूप से जोड़ने (या हटाने) का एक तरीका प्रदान करता है। (Mage_Catalog के config.xml में फ्रंटएंड/उत्पाद/संग्रह/एट्रिब्यूट्स XML टैग देखें)