AddAttributeToFilter () Vs addFieldToFilter () में क्या अंतर है?


21

मैं उलझन में हूँ कि addAttributeToFilter () और addFieldToFilter () फ़ंक्शंस का अंतर क्या है। मैं Magento में कोर फ़ाइलों की जाँच की। लेकिन मुझे स्पष्ट विचार नहीं आया। क्योंकि Magento के कुछ संग्रहों में addAttributeToFilter () का उपयोग किया गया है और कुछ ने addFieldToFilter () का उपयोग किया है। कृपया इस पर कोई स्पष्टीकरण एक बड़ी मदद होगी। अग्रिम में धन्यवाद।

जवाबों:


45

addAttributeToFilter() EAV संग्रह को फ़िल्टर करने के लिए उपयोग किया जाता है।

addFieldToFilter() गैर-ईएवी संग्रह को फ़िल्टर करने के लिए उपयोग किया जाता है।

EAV- मॉडल उदाहरण उत्पाद, ग्राहक, बिक्री आदि के लिए हैं, ताकि आप addAttributeToFilter()उन संस्थाओं के लिए उपयोग कर सकें ।

addFieldToFilter()addAttributeToFilter()ईएवी संस्थाओं के लिए मैप किया गया है। तो आप बस उपयोग कर सकते हैं addFieldToFiler()

संपादित करें:

app/code/core/Mage/Eav/Model/Entity/Collection/Abstract.phpमैपिंग करने के बाद आपकी नज़र उन पर पड़ सकती है:

public function addFieldToFilter($attribute, $condition = null) {
    return $this->addAttributeToFilter($attribute, $condition);
}

शानदार जवाब। वाहवाही। यह मुझे यह पता लगाने की अनुमति देता है कि चीजें कहां हैं। यह मुझे सूचित करता है कि कोई ईएवी के साथ प्रयोग करने योग्य है, भले ही वह गैर ईएवी को भी संभाल सके। यह कार्रवाई करने योग्य है, और यह पाठकों को और अधिक जानने के लिए उपकरण देता है, न कि केवल इस विशेष प्रश्न का उत्तर। क्या आप addAttributeToSelect()बनाम के बीच अंतर के बारे में एक सवाल का जवाब देना चाहेंगे addAttributeToFilter()?
अहानजकद

1
अंतर एसक्यूएल का वह हिस्सा है जो अधिनियमित किया गया है: एक क्वेरी addAttributeToSelect()के SELECTहिस्से के संदर्भ में और केवल विशिष्ट कॉलम्स का चयन करता है। addFAttributeToFilter()का उपयोग किसी संग्रह को फ़िल्टर करने के लिए किया जाता है और उसके WHEREभाग में जोड़ दिया जाता है ।
अन्ना वोक्कल

3

EAV के संबंध में कोई अंतर नहीं है।

/app/code/core/Mage/Eav/Model/Entity/Collection/Abstract.php
public function addFieldToFilter($attribute, $condition = null)
{
    return $this->addAttributeToFilter($attribute, $condition);
}

मेरी धारणा, हालांकि मैं गलत हो सकता है, यह है कि ईएवी के लिए वे विशेषता नामकरण का उपयोग करते हैं जिस पर फ़िल्टर करने के लिए प्रत्येक विशेषता अपने आप में एक स्टैंड अलोन आइटम है जिसकी अपनी सेटिंग्स हैं आदि जहां ईएवी का उपयोग नहीं करते समय यह सिर्फ एक और कॉलम है। एक डेटाबेस टेबल और इसलिए नाम फील्ड अच्छी तरह से काम करता है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.