Magento 2如何根据条件禁用类别属性?
Magento 2如何根据条件禁用类别属性 以我为例,Magento 2如何根据条件禁用类别属性?,magento,categories,magento2,backend,magento-2.3,Magento,Categories,Magento2,Backend,Magento 2.3,Magento 2如何根据条件禁用类别属性 以我为例, 我必须仅为L2类别启用category属性,在另一个类别中,它应该被禁用。在我的示例中,我必须仅为L2类别启用custom category属性,并且在另一个类别级别上,它应该被禁用 在自定义di.xml文件中添加此代码以扩展Magento\Catalog\Model\Category\DataProvider.php 扩展Magento\Catalog\Model\Category\DataProvider.php文件后,现在在自定义模
我必须仅为L2类别启用category属性,在另一个类别中,它应该被禁用。在我的示例中,我必须仅为L2类别启用custom category属性,并且在另一个类别级别上,它应该被禁用
Magento\Catalog\Model\Category\DataProvider.php
文件后,现在在自定义模块中创建xyz\abc\Model\Notification\DataProvider.php
文件,其中我们调用Magento\Catalog\Model\category\DataProvider.php
复制到xyz\abc\Model\Notification\DataProvider.php
,因为此函数是私有函数,因此无法扩展该函数
category\u form.xml(路径:xyz/abx/view/adminhtml/ui\u component/category\u form.xml)
并将此代码添加到自定义category属性中
........
${$.provider}:data.we\u隐藏它吗
`
我非常感谢你出色的工作!继续努力!在StackExchange上也发布相同的内容。
public function getData() {
if (isset($this->loadedData)) {
return $this->loadedData;
}
$category = $this->getCurrentCategory();
if ($category) {
$categoryLevel = $category->getLevel();
$categoryData = $category->getData();
$categoryData = $this->addUseConfigSettings($categoryData);
$categoryData = $this->filterFields($categoryData);
$categoryData = $this->convertValues($category, $categoryData);
$this->loadedData[$category->getId()] = $categoryData;
//Customization Started
if( $categoryLevel == 2 )
$this->loadedData[$category->getId()]['do_we_hide_it'] = false;
else
$this->loadedData[$category->getId()]['do_we_hide_it'] = true;
//Customization ended
}
return $this->loadedData;
}
<field name="your_custom_attibute_name">
<argument name="data" xsi:type="array">
........
</argument>
<!-- Customization Started -->
<settings>
<imports>
<link name="disabled">${ $.provider}:data.do_we_hide_it</link>
</imports>
</settings>
<!-- Customization ended -->
</field>