Magento संग्रह विधि का उपयोग करते समय addFieldToFilter क्या नल मानों द्वारा फ़िल्टरिंग की अनुमति देना संभव है? मैं उस संग्रह में सभी उत्पादों का चयन करना चाहता हूं जिनके पास कस्टम विशेषता है, भले ही विशेषता को कोई मान निर्दिष्ट नहीं किया गया हो।Magento addFieldToFilter NULLs
उत्तर
आपको addFieldToFilter
का उपयोग करने की आवश्यकता नहीं है।
अब समाधान:
विशेषताओं का नाम Magento में code
के रूप में जाना जाता है, तो आप सिर्फ नीचे दिए गए कोड का उपयोग करने के उत्पादों जो एक सरणी
$prodsArray=Mage::getModel('catalog/product')->getCollection()
->addAttributeToFilter('custom_attribute_code')
->getItems();
रूप में एक विशिष्ट विशेषता के सभी प्राप्त करने की आवश्यकता
आप addAttributeToFilter के दूसरे पैरामीटर में addAttributeToFilter
में विशेषता के मान के लिए कुछ शर्तों को भी निर्दिष्ट कर सकते हैं।
आप इस फ़ाइल में इस विधि (आगे के अध्ययन के लिए) पा सकते हैं:
app/code/core/Mage/Eav/Model/Entity/Collection/Abstract.php
अशक्त/खाली विशेषताओं द्वारा एक उत्पाद का संग्रह फ़िल्टर करना दो संभव समाधान है। Magento फ़िल्टर करने के लिए गुणों के मूल्यों को पकड़ने के लिए एक INNER जॉइन का उपयोग करता है। लेकिन यदि उत्पाद विशेषता को मान निर्दिष्ट नहीं किया जाता है तो शामिल होने में विफलता विफल हो जाएगी, क्योंकि डेटाबेस तालिका/संबंध गुम है।
समाधान # 1: उपयोग addAttributeToFilter() और से "आंतरिक" (डिफ़ॉल्ट) प्रकार में शामिल होने को बदलने "छोड़" करने के लिए:
$collection = Mage::getModel('catalog/product')->getCollection();
$collection->addAttributeToFilter('custom_attribute', array(... condition options ..), 'left');
समाधान # 2: सुनिश्चित करें कि आपके कस्टम विशेषता बनाओ एक डिफ़ॉल्ट मान है। Magento इस संबंध में रूढ़िवादी है। Magento केवल विशेषता और उत्पाद के बीच संबंध बनाएगा यदि विशेषता के लिए कोई मान दिया गया हो। इसलिए उपयोगकर्ता द्वारा निर्दिष्ट मान या डिफ़ॉल्ट मान की अनुपस्थिति में विशेषता उत्पाद फ़िल्टर करने के लिए पहुंच योग्य नहीं होगी, भले ही विशेषता व्यवस्थापक पैनल के अंतर्गत उत्पाद विवरण दृश्य में दिखाई दे।
मैं देख रहा हूँ आप पहले से ही एक समाधान मिल गया, लेकिन वहाँ भी इस विकल्प है:
$collection->addFieldToFilter('parent_item_id', array('null' => true));
लेकिन जो काम नहीं करता है तो आप "शून्य" => झूठी, उपयोग करना चाहते हैं। (और मैंने देखा है कि आप इस तरह के "में", "nin", "eq", "neq", "जीटी" के रूप में तत्वों का उपयोग कर सकते हैं), तो आप ऐसा कर सकते हैं:
$collection->addFieldToFilter('parent_item_id', array('neq' => 'NULL'));
आशा यह अभी भी उपयोगी है। ..
Varien_Data_Collection_Db :: _ getConditionSql() के कोड में दस्तावेज़ देखें। यह उन सभी विकल्पों का वर्णन करता है जो संभव है, जैसा कि उल्लिखित 'शून्य' है, बल्कि रिवर्स के लिए 'नोटन' भी है। – fietserwin
यह नहीं NULL फिल्टर
$collection->addFieldToFilter('parent_item_id', array('notnull' => true));
लिए काम करता है क्योंकि सवाल बिल्कुल प्रश्न के शीर्षक से मेल नहीं खाता है और मैं की तरह एक शर्त है की खोज करके उन्हें कई बार पाया: विशेष मूल्य या शून्य
आप एक संग्रह एक मूल्य या नल मिलान फ़िल्टर करना चाहते हैं, तो आप उपयोग कर सकते हैं:
$collection->addFieldToFilter('<attribute>', array(
array('eq' => '<value>'),
array('null' => true)
));
- 1. NULLs
- 2. पीडीओ तैयार वक्तव्य - NULLs
- 3. MySQL GROUP_CONCAT Nulls
- 4. NULLs की तुलना
- 5. क्यों इस क्वेरी nulls
- 6. फिल्टर Magento संग्रह फ़िल्टर करें लेकिन विशिष्ट
- 7. FluentAssertions Should.Equal संग्रह पर, Nulls
- 8. TSQL में OpenRowSet कमांड NULLS
- 9. Magento ग्रिड कॉलम सॉर्टिंग
- 10. किसी सरणी का Deserialization हमेशा nulls
- 11. Magento -
- 12. Magento
- 13. Magento
- 14. Magento
- 15. Magento
- 16. Magento
- 17. Magento
- 18. Magento
- 19. Magento
- 20. Magento
- 21. Magento
- 22. Magento
- 23. Magento
- 24. Magento
- 25. Magento
- 26. Magento
- 27. Magento
- 28. Magento
- 29. Magento
- 30. Magento
addFieldToFilter ओर इशारा करते हुए के लिए धन्यवाद - यह निपटने शून्य छी के समाधान के लिए नेतृत्व किया एलडीएस – leepowers
यह वास्तव में गलत है, यह एक "खाली" फ़िल्टरिंग के बजाय खाली '' के साथ तुलना करेगा। – useless