Apa itu reverseMetadataMerge di Komponen UI?


9

Ketika saya melihat dokumentasi Komponen UI , saya perhatikan hal berikut:

<item name="reverseMetadataMerge" xsi:type="boolean">true</item>

Sekarang, sebagian besar argumen cukup menjelaskan diri sendiri dalam apa yang mereka lakukan, atau saya sudah mengetahuinya, tetapi apa yang reverseMetadataMergedilakukannya?

Jawaban:


10

Pengaturan yang Anda sebutkan digunakan di vendor/magento/framework/View/Element/UiComponentFactory.php

 $reverseMerge = isset($componentArguments['data']['reverseMetadataMerge'])
            && $componentArguments['data']['reverseMetadataMerge'];
        $bundleComponents = $this->mergeMetadata($identifier, $bundleComponents, $reverseMerge);

ini akan menggabungkan metadata yang sudah didefinisikan dalam vendor/magento/module-customer/view/base/ui_component/customer_form.xmldengan beberapa metadata lain yang didefinisikan dalam konstruktor penyedia data.

protected function mergeMetadata($identifier, array $bundleComponents, $reverseMerge = false)
{
    $dataProvider = $this->getDataProvider($identifier, $bundleComponents);
    if ($dataProvider instanceof DataProviderInterface) {
        $metadata = [
            $identifier => [
                'children' => $dataProvider->getMeta(),
            ],
        ];
        $bundleComponents = $this->mergeMetadataItem($bundleComponents, $metadata, $reverseMerge);
    }

    return $bundleComponents;
}

Dalam hal dokumentasi penyedia data Anda ada vendor/magento/module-customer/Model/Customer/DataProvider.phpdi dalam konstruktor

 $this->meta['customer']['children'] = $this->getAttributesMeta(
        $this->eavConfig->getEntityType('customer')
    );
    $this->meta['address']['children'] = $this->getAttributesMeta(
        $this->eavConfig->getEntityType('customer_address')
    );

yang menambahkan beberapa atribut lainnya. Dalam kasus pelanggan, atribut adalah yang ditunjukkan dengan warna biru pada gambar berikut

atribut yang ditambahkan pelanggan

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.