UI 구성 요소에서 reverseMetadataMerge는 무엇입니까?


10

UI Components 설명서를 보면 다음을 알 수 있습니다.

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

자, 대부분의 주장은 그들이하는 일에 대해 스스로 설명하고 있거나 이미 알고 있지만 무엇을 reverseMetadataMerge합니까?

답변:


11

언급 한 설정은 vendor/magento/framework/View/Element/UiComponentFactory.php

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

이렇게하면 이미 정의 된 메타 데이터 vendor/magento/module-customer/view/base/ui_component/customer_form.xml가 데이터 공급자의 생성자에 정의 된 다른 메타 데이터와 병합됩니다 .

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

문서의 경우 데이터 공급자는 vendor/magento/module-customer/Model/Customer/DataProvider.php생성자 내부에

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

다른 속성을 추가합니다. 고객의 경우 속성은 다음 이미지에서 파란색으로 표시된 속성입니다.

고객 추가 속성

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.