क्या "स्रोत" और "डेटास्कोप" का मतलब व्यवस्थापक रूप में Ui घटक कॉन्फ़िगरेशन फ़ाइल है


11

कर रहे हैं स्रोत और dataScope Magento2 व्यवस्थापक प्रपत्र यूआई घटक विन्यास में नोड्स। उनका क्या मतलब है और उनका उपयोग कैसे किया जाना चाहिए?

<field name="title">
    <argument name="data" xsi:type="array">
        <item name="config" xsi:type="array">
            <item name="dataType" xsi:type="string">text</item>
            <item name="label" xsi:type="string" translate="true">Page Title</item>
            <item name="formElement" xsi:type="string">input</item>
            <item name="source" xsi:type="string">page</item>
            <item name="sortOrder" xsi:type="number">20</item>
            <item name="dataScope" xsi:type="string">title</item>
            <item name="validation" xsi:type="array">
                <item name="required-entry" xsi:type="boolean">true</item>
            </item>
        </item>
    </argument>
</field>

जवाबों:


20

sourceनोड के बारे में

sourceडेटा सरणी में एक महत्वपूर्ण नोड के मूल्य मेल खाती द्वारा वापस \Magento\Framework\View\Element\UiComponent\DataProvider\DataProviderInterface::getDataअपने UI घटक की विधि।


उदाहरण के लिए, चलो customer_form UI पर विचार करें ।
फ़ाइल/Magento/Customer/view/base/ui_component/customer_form.xml

यहां से आप देख सकते हैं कि अधिकांश क्षेत्रों के लिए Magento नोड के customerतहत मान का उपयोग करता है source
लेकिन रुकिए, खेतों के नीचे के खेतों के लिए addressयह मूल्य बदल गया है address

अब चलो customer_form UI घटक के लिए संबंधित DataProvider पर एक संक्षिप्त नज़र डालें । वर्ग है ।
\Magento\Customer\Model\Customer\DataProvider

मोटे तौर पर, getDataइस वर्ग की विधि उन डेटा को वापस करने के लिए जिम्मेदार है जो customer_form घटक द्वारा घोषित संबंधित फ़ील्ड में पॉपुलेटेड हैं।
जैसा कि आप अभी अनुमान लगा सकते हैं, नोड का ग्राहक मूल्य sourceहमें विधि में मुख्य ग्राहक के तहत संग्रहीत मूल्य का उपयोग करने के लिए कहता है getData, जबकि पता source दिए गए डेटा में कुंजी पते के तहत संग्रहीत डेटा को इंगित करता है।

करीब से देखो: <field name="firstname" formElement="input"> <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> item name="source" xsi:type="string">customer</item> </item> </argument> </field>

उपरोक्त फ़ील्ड ग्राहक के डेटाप्रोवाइडर द्वारा लौटाए गए मुख्य ग्राहक के तहत संग्रहीत डेटा से अपना पहला नाम मान लेता है ।

नीचे दिए गए मामले में, प्रथम नाम मान का स्रोत कुंजी पते के तहत संग्रहीत डेटा है : <field name="firstname" formElement="input"> <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> <item name="source" xsi:type="string">address</item> </item> </argument> </field>


dataScopeनोड के बारे में

dataScopeनोड आप के लिए एक मूल्य बदलने की अनुमति देता नाम अपने इनपुट (क्षेत्र), उदाहरण के लिए, की विशेषता <field name="title"> <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> <item name="dataType" xsi:type="string">text</item> <item name="formElement" xsi:type="string">input</item <item name="dataScope" xsi:type="string">field_name</item> </item> </argument> </field> परिणाम इनपुट इस प्रकार के रूप में प्रदान किया जाएगा:<input name="field_name"...>

आप dataScopeडॉट्स द्वारा अलग किए गए नोड में मान भी लिख सकते हैं : customer.address.firstnameइस मामले में परिणाम इनपुट निम्नानुसार प्रदान किया गया है: <input name="customer[address][firstname]"...> यहां वह जगह है जहां जादू होता है

साथ ही dataScopeनोड किसी फ़ील्ड के लिए पुनर्प्राप्त मान का पथ बदलता है । यह लिंकिंग तकनीक के माध्यम से हासिल किया गया है ।


1

इसका मतलब यह है कि आपके क्षेत्र को आपके "डेटास्कोप" मूल्य की तरह POST में क्या भेजा जाएगा, उदाहरण के लिए आपकी स्थिति में पोस्ट अनुरोध इस तरह होगा ['title'] => var


आपने एक प्रश्न याद किया। स्रोत का अर्थ क्या है ? यदि यह डेटा स्रोत है, तो तर्क पृष्ठ क्यों है , पेज_लिस्टिंग_डेटा_स्रोत नहीं ?
की शांग
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.