विशेषता backend_type = स्थिर?


23

क्या कोई किसी विशेषता के लिए backend_type स्थैतिक के महत्व / प्रासंगिकता की व्याख्या कर सकता है ?

मुझे एक विशेषता के साथ कुछ समस्याएं हो रही हैं जो लोड नहीं हो रही हैं और मैं सोच रहा हूं कि क्या backend_typeइसके साथ कुछ करना है?

इसके अलावा, क्या यह किसी तरह से संबंधित है जैसा कि फ्लैट टेबल में रखा गया है?

जवाबों:


37

, सूची उत्पादों के लिए - स्टेटिक गुण एक इकाई के मुख्य तालिका में संग्रहीत गुण हैं catalog_product_entity। उदाहरण के लिए, skuकैटलॉग उत्पादों की विशेषता के रूप में परिभाषित किया गया है static। स्थैतिक गुण हमेशा Magento द्वारा लोड किए जाते हैं, और विशेष रूप से उपयोगी होते हैं यदि आप जानकारी को जल्दी से प्राप्त करना चाहते हैं या डेटा की खोज को अनुकूलित करना चाहते हैं। इस प्रकार की विशेषताओं का एक दोष यह है कि आपके पास स्टोर-विशिष्ट मान नहीं हो सकते हैं, जो कि Magento EAV प्रणाली के लाभों में से एक है।

यहां तक ​​कि अगर आप एक विशेषता को परिभाषित करते हैं static, तो Magento इसे तब तक नहीं मानेगा जब तक कि आपके पास मुख्य इकाई तालिका में संबंधित कॉलम न हो। यदि स्तंभ नहीं है, तो Magento विशेषता को varcharडिफ़ॉल्ट रूप से मानता है और इसे मॉडल के लिए varchar EAV तालिका में देखता है - उत्पादों के लिए catalog_product_entity_varchar,।

यदि आप अपनी परियोजना में स्थिर विशेषताओं का उपयोग करना चाहते हैं, तो आपको अपनी इंस्टॉल / अपग्रेड स्क्रिप्ट में 2 चीजें करनी होंगी। सबसे पहले, आपको सही कॉलम परिभाषा के साथ, मुख्य इकाई तालिका में एक स्तंभ जोड़ने की आवश्यकता है। अगला, आपको addAttribute()विधि का उपयोग करके अपनी विशेषता स्थापित करने की आवश्यकता है , और अपनी विशेषता को इस रूप में परिभाषित करें static। कृपया यह Mage_Catalogसमझने के लिए कि इस मामले में चीजें कैसे काम करती हैं, बेहतर तरीके से स्थापित स्क्रिप्ट का संदर्भ लें ।

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


1
category_ids स्थिर है। यह कैटलॉग_प्रोडक्ट_एंटिटी_वरच टेबल में नहीं है।
एहनबिजद

सारांश: स्थैतिक का अर्थ है कि मान एक स्तंभ है catalog_product_entity, और यदि यह नहीं है, तो यह कैटलॉग_प्रोडक्ट_वेंटी_कवर में वापस जाँच करेगा।
अहानिबेकाड

1

यहाँ कोर से नमूना है:

$installer->run("
    ALTER TABLE `{$installer->getTable('catalog/product')}` ADD `has_options` SMALLINT(1) NOT NULL DEFAULT '0';
");

$installer->addAttribute('catalog_product', 'has_options', array(
    'type' => 'static',
    'visible'=>false,
    'default' => false
));

1
इसका सवाल से क्या लेना-देना है?
मेरियस

@ यह केवल एक स्टेटिक विशेषता जोड़ने का एक नमूना है।
रोमन स्नित्को

मान लीजिए कि आप MySQL के माध्यम से सीधे DB में कॉलम जोड़ते हैं। आप मौजूदा उत्पाद विशेषता के TYPE को STATIC में कैसे बदल सकते हैं? प्रश्न: क्या हम एक निश्चित तालिका में प्रकार = स्थैतिक को अपडेट कर सकते हैं और यह काम करेगा?
snh_nl
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.