Yönetici formu Ui bileşeni yapılandırma dosyasında “kaynak” ve “dataScope” ne anlama geliyor?


11

Orada kaynak ve DATASCOPE Magento2 yönetici formu UI bileşeni yapılandırmasında düğümler. Ne anlama geliyorlar ve nasıl kullanılmaları gerekiyor?

<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>

Yanıtlar:


20

sourceDüğüm ile ilgili olarak

sourceVeri dizisinde bir anahtara düğümün değeri karşılık dönen \Magento\Framework\View\Element\UiComponent\DataProvider\DataProviderInterface::getDataUI 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 customeriçin sourcedüğüm altındaki değeri kullandığını görebilirsiniz .
Ancak bekleyin, addressalan 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, getDatabu 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 sourceanahtar müşteri altında depolanan değeri kullanmamızı getDatasöylerken, adres döndürülen verilerdeki sourceanahtar 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>


dataScopeDüğüm ile ilgili olarak

dataScopeDüğü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, dataScopenoktalarla ayrılmış düğüme de yazabilirsiniz : customer.address.firstnamebu durumda sonuç girişi aşağıdaki gibi oluşturulur: <input name="customer[address][firstname]"...> İşte sihir gerçekleşir .

Ayrıca dataScopedüğüm bir alan için alınan değerin yolunu değiştirir . Bu, bağlama tekniği ile elde edilir .


1

bu, alanınızın "dataScope" değeriniz gibi POST'ta gönderileceği anlamına gelir, örneğin durumunuzdaki istek gibi ['title'] => var


Bir soruyu kaçırdınız. Kaynağın anlamı nedir ? Veri kaynağı ise, argüman neden page_listing_data_source değil de sayfadır ?
Key Shang
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.