Magento 2에서 모달 (모델이 아님)의 동작을 변경하려고합니다.
해당 모달은 advanced_inventory_modal
에 선언되어 module-catalog-inventory/view/adminhtml/ui_component/product_form.xml
있습니다.
이제 product-form-modifier-pool에서 수정자를 사용할 수 있다는 것을 알고 있습니다.
<virtualType name="Magento\Catalog\Ui\DataProvider\Product\Form\Modifier\Pool">
<arguments>
<argument name="modifiers" xsi:type="array">
<item name="hf_quantity" xsi:type="array">
<item name="class" xsi:type="string">Vendor\Module\Ui\DataProvider\Product\Form\Modifier\Quantity</item>
<item name="sortOrder" xsi:type="number">100</item>
</item>
</argument>
</arguments>
</virtualType>
... modifyMeta()
내 수정 자 에서 -method를 사용하여 XML 구성을 조작하지만 어떤 이유로 인벤토리 모달이 여기에 제공된 데이터에 없습니다.sortOrder
이미 그 방법을 높게 설정했기 때문에 관련 문제 도 아닙니다 .sortOrder
-attribute가 함께 할 수있는 뭔가가있을 수 있습니다.
무엇을 제공합니까? 누구나 Magento 2에서 기존 모달의 내용을 수정하는 올바른 방법이 무엇인지 말해 줄 수 있습니까?
편집하다:
내가 달성하려는 것을 달성하는 방법에 대한 해결책이나 해결책 (아직 확실하지 않음)을 발견했습니다. 10000으로 설정 sortOrder
하면 사용할 수있는 -a 메소드에 데이터 가 있습니다.modifyMeta()
public function modifyMeta(array $meta)
{
if ($path = $this->arrayManager->findPath('quantity_and_stock_status_qty', $meta, null, 'children')) {
$this->arrayManager->remove(
$path . '/children/qty/arguments/data/config/validation/validate-digits',
$meta
);
}
if ($path = $this->arrayManager->findPath('advanced_inventory_modal', $meta)) {
$meta = $this->arrayManager->merge(
$path . '/children/stock_data/children/qty/arguments/data/config',
$meta,
['validation' => ['validate-digits' => false]]
);
}
return $meta;
}
Note that the `advanced_inventory_modal` node is not yet complete, but my best guess is that the later addition of the modal merges with these settings, but doesn't override it. Could be wrong though, perhaps someone could share some more light on how this mechanism works?