source
Düğüm ile ilgili olarak
source
Veri dizisinde bir anahtara düğümün değeri karşılık dönen \Magento\Framework\View\Element\UiComponent\DataProvider\DataProviderInterface::getData
UI bileşeninin yöntemi.
Örneğin, customer_form kullanıcı arayüzünü ele alalım .
Dosya/Magento/Customer/view/base/ui_component/customer_form.xml
Buradan Magento'nun çoğu alan customer
için source
düğüm altındaki değeri kullandığını görebilirsiniz .
Ancak bekleyin, address
alan kümesinin altındaki alanlar için bu değer address
.
Şimdi customer_form UI bileşeni için ilgili DataProvider'a kısaca göz atalım .
Sınıf .
\Magento\Customer\Model\Customer\DataProvider
Kabaca, getData
bu sınıfın yöntemi customer_form bileşeni tarafından bildirilen karşılık gelen alanlara doldurulmuş verilerin döndürülmesinden sorumludur .
Şimdi tahmin edebileceğiniz gibi , düğümün müşteri değeri , yöntemde source
anahtar müşteri altında depolanan değeri kullanmamızı getData
söylerken, adres döndürülen verilerdeki source
anahtar adres altında depolanan verilere işaret eder .
Yakından bakmak:
<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>
Yukarıdaki alan, ilk ad değerini müşterinin DataProvider tarafından döndürülen anahtar müşteri altında depolanan verilerden alır .
Aşağıdaki durumda, ad değerinin kaynağı anahtar adres altında depolanan verilerdir :
<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
Düğüm ile ilgili olarak
dataScope
Düğüm için bir değer değiştirmenizi sağlar adı örn girişiniz (alan), bir öznitelik
<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>
aşağıdaki gibi sonuç girişi sağlanacaktır:<input name="field_name"...>
Değerleri, dataScope
noktalarla ayrılmış düğüme de yazabilirsiniz : customer.address.firstname
bu durumda sonuç girişi aşağıdaki gibi oluşturulur: <input name="customer[address][firstname]"...>
İşte sihir gerçekleşir .
Ayrıca dataScope
düğüm bir alan için alınan değerin yolunu değiştirir . Bu, bağlama tekniği ile elde edilir .