Mengenai source
simpul
Nilai source
node sesuai dengan kunci dalam array data yang dikembalikan oleh \Magento\Framework\View\Element\UiComponent\DataProvider\DataProviderInterface::getData
metode komponen UI Anda.
Sebagai contoh, mari kita pertimbangkan UI customer_form .
Mengajukan/Magento/Customer/view/base/ui_component/customer_form.xml
Dari sini Anda dapat melihat bahwa sebagian besar bidang Magento menggunakan customer
nilai di bawah source
simpul.
Tapi tunggu, untuk bidang di bawah address
fieldset, nilai ini telah berubah menjadi address
.
Sekarang mari kita lihat sekilas DataProvider terkait untuk komponen UI customer_form .
Kelasnya adalah \Magento\Customer\Model\Customer\DataProvider
.
Secara kasar, metode getData
kelas ini bertanggung jawab untuk mengembalikan data yang terisi ke bidang terkait yang dinyatakan oleh komponen customer_form .
Seperti yang dapat Anda tebak sekarang, nilai pelanggan dari source
simpul memberitahu kami untuk menggunakan nilai yang disimpan di bawah pelanggan utama dalam getData
metode, sementara alamat source
menunjuk ke data yang disimpan di bawah alamat utama dalam data yang dikembalikan.
Melihat lebih dekat:
<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>
Bidang di atas mengambil nilai nama depan dari data yang disimpan di bawah pelanggan utama yang dikembalikan oleh DataProvider pelanggan .
Sementara dalam kasus di bawah ini, sumber nilai nama depan adalah data yang disimpan di bawah alamat utama :
<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>
Mengenai dataScope
simpul
The dataScope
simpul memungkinkan Anda untuk mengubah nilai untuk nama atribut masukan Anda (lapangan), misalnya,
<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 hasil akan diberikan sebagai berikut:<input name="field_name"...>
Anda juga dapat menulis nilai-nilai ke dalam dataScope
simpul yang dipisahkan oleh titik-titik:, customer.address.firstname
dalam hal ini input hasil yang diberikan sebagai berikut: <input name="customer[address][firstname]"...>
Di sinilah keajaiban terjadi .
Juga dataScope
simpul perubahan jalur nilai diambil untuk lapangan. Ini dicapai melalui teknik menghubungkan .