我正在使用本指南和指南2作为参考,将自定义属性添加到catalog_product,但该补丁不起作用。
这是补丁文件 (JKM\CustomModule\Setup\Patch\Data\AddShopAttribute.php):
<?php
namespace JKM\CustomModule\Patch\Data;
use Magento\Eav\Setup\EavSetup;
use Magento\Eav\Setup\EavSetupFactory;
use Magento\Framework\Setup\ModuleDataSetupInterface;
use Magento\Framework\Setup\Patch\DataPatchInterface;
class AddShopAttribute implements DataPatchInterface
{
/** @var ModuleDataSetupInterface */
private $moduleDataSetup;
/** @var EavSetupFactory */
private $eavSetupFactory;
/**
* @param ModuleDataSetupInterface $moduleDataSetup
* @param EavSetupFactory $eavSetupFactory
*/
public function __construct(
ModuleDataSetupInterface $moduleDataSetup,
EavSetupFactory $eavSetupFactory
) {
$this->moduleDataSetup = $moduleDataSetup;
$this->eavSetupFactory = $eavSetupFactory;
}
/**
* {@inheritdoc}
*/
public function apply()
{
/** @var EavSetup $eavSetup */
$eavSetup = $this->eavSetupFactory->create(['setup' => $this->moduleDataSetup]);
$eavSetup->addAttribute('catalog_product', 'shop', [
'type' => 'int',
'label' => 'Shop',
'input' => 'select',
'used_in_product_listing' => true,
'user_defined' => true,
]);
}
/**
* {@inheritdoc}
*/
public static function getDependencies()
{
return [];
}
/**
* {@inheritdoc}
*/
public function getAliases()
{
return [];
}
}
运行命令时出现此错误bin/magento setup:upgrade:
模块“CustomModle”:警告:call_user_func() 期望参数 1 是有效的回调,在 magento-root-folder/vendor/magento/framework/Setup/Patch/ 中找不到类
我设法创建了一个表(db_schema.xml 有效)但它是空的。出于某种原因,数据/架构补丁对我不起作用。模块路径是否正确(应用程序/代码/命名空间/模块)?什么可能导致这种行为?任何帮助,将不胜感激。
动漫人物