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