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
नोड किसी फ़ील्ड के लिए पुनर्प्राप्त मान का पथ बदलता है । यह लिंकिंग तकनीक के माध्यम से हासिल किया गया है ।