उपयोगकर्ता परिभाषित विशेषता और गैर उपयोगकर्ता परिभाषित विशेषता के बीच अंतर क्या है?


11

मेरे पास ग्राहक विशेषता इस प्रकार है:

$customerSetup->addAttribute(Customer::ENTITY, "attr_code",  [
            "type"     => "varchar",
            "backend"  => "",
            "label"    => "Attribute Label",
            "input"    => "text",
            "source"   => "Magento\Eav\Model\Entity\Attribute\Source\Table",
            "visible"  => true,
            "required" => false,
            "default"  => "",
            "frontend" => "",
            "unique"   => false,
            "note"     => "",
            'system'   => 0,
            'user_defined' => true
]);

मेरा प्रश्न है: यदि मैं सेट करूं तो विशेषता पर क्या अंतर user_definedहै false? और जो स्थितियों में मैं स्थापित करना चाहिए user_definedकरने के लिए trueया false?

जवाबों:


22

वास्तव में Magento user_defined = झूठी विशेषताओं को सिस्टम विशेषताओं के रूप में जाना जाता है। इसलिए Magento की अपनी कुछ प्रणाली विशेषता है, जिसे हम व्यवस्थापक पैनल से हटा नहीं सकते हैं। इसलिए Magento सिस्टम विशेषता को हटाने की अनुमति नहीं देगा। हम उन्हें डेटाबेस के माध्यम से हटा सकते हैं लेकिन यह सुरक्षित नहीं है।

तो ऐसे गुण जो एक ऐसी प्रणाली को चलाने के लिए आवश्यक हैं, जिसे हम उस प्रकार की विशेषता के रूप में बना सकते हैं जैसे कि सिस्टम विशेषताएँ। लेकिन इसके विपरीत, हम व्यवस्थापक पैनल से उपयोगकर्ता परिभाषित विशेषताओं को आसानी से हटा सकते हैं।

आशा है कि यह मदद करता है धन्यवाद।


5

Magento सिस्टम विशेषताएँ user_defined केfalse लिए सेट की गई हैं ताकि हमारी कस्टम विशेषताएँ सेट की जाएँ true। सिस्टम गुण इसलिए हटाया नहीं जा सकता है, तो आप सेट falseकरने के लिए user_defined , अपनी विशेषता प्रणाली विशेषता के रूप में काम करेंगे।


1
तो आपका मतलब है कि यह सिर्फ संकेत के लिए है, उनके बीच कोई वास्तविक अंतर नहीं है?
PY YICK

3

इसे जोड़ने के लिए:

यदि आप विशेषताओं Install-/ UpdateSchemaको जोड़ते हैं, तो सुनिश्चित करें कि इसमें जोड़ें 'user_defined' => true। केवल गैर-सिस्टम विशेषताएँ (जैसे। Is_user_defined = 1) का उपयोग विन्यास योग्य उत्पादों के लिए किया जा सकता है।


2

वास्तव में, मैं एक बड़ा अंतर नोटिस करता हूं जब मैंने Magento 1 सीखा । यदि कोई विशेषता user_defined = true सेट की जाती है , तो यह तब तालिका में नहीं बनाई जाएगी eav_entity_attribute । लेकिन फिर भी आप इसे टेबल eav_attribute में पा सकते हैं । यदि user_defined = false सेट किया गया है , तो जब यह बनाया जाता है तो यह eav_entity_attribute और eav_attribute तालिकाओं दोनों में दिखाई देगा । लेकिन बदले में, मुझे नहीं पता कि यह अंतर क्यों बनाता है / प्रभावित करता है।

मुझे Magento 2 के बारे में निश्चित नहीं है, लेकिन मुझे लगता है कि आप इसे आसानी से सत्यापित कर सकते हैं और दूसरों को बता सकते हैं।


1

यदि कोई विशेषता 'user_defined' के रूप में सेट की जाती है, तो उपयोगकर्ता विशेषता उपयोगकर्ता इंटरफ़ेस के अंदर विकल्प मानों को परिभाषित कर सकता है।

हालाँकि यदि आप स्रोत मॉडल का उपयोग कर रहे हैं तो 'user_defined' को गलत पर सेट किया जाना चाहिए, अन्यथा स्रोत मॉडल से विकल्प लोड नहीं होते हैं।


1

user_defined = वास्तविक गुण आमतौर पर उत्पाद विशेष जानकारी के लिए कैटलॉग प्रबंधक द्वारा बनाए जाते हैं।
user_defined = झूठी Magento डिफ़ॉल्ट गुण जो काम या किसी में कुछ अतिरिक्त सुविधा उपलब्ध कराने के मॉड्यूल के लिए कुछ कार्यक्षमताओं, विशेषता के आधार पर की तरह के लिए आवश्यक हैं के लिए sku , मात्रा , website_ids , product_online प्रणाली मात्रा और उत्पाद के दायरे का प्रबंधन करने के लिए आवश्यक गुण हैं, उसी तरह is_featured या show_on_homepage कुछ विशेषता प्रदान कर सकता है बैकएंड में कुछ सुविधा प्रदान करने के लिए और व्यवस्थापक उपयोगकर्ता द्वारा हटाया नहीं जाना चाहिए जो कार्यक्षमता को तोड़ सकता है।


1

उपयोगकर्ता द्वारा परिभाषित एक और बात यह है कि यह निर्धारित करता है कि क्या आप बैक ऑफिस में विशेषता संपादन पृष्ठ से विशेषता के विकल्पों को संपादित कर सकते हैं या नहीं, यदि आपके पास विशिष्ट लेबल के साथ कोई विशेषता है जो आप नहीं चाहते हैं कि कोई व्यवस्थापक उपयोगकर्ता को बदले, आपको "user_defined" को गलत पर सेट करना चाहिए।

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