我已创建文件 setup / installdata.php :
use Magento\Eav\Setup\EavSetup;
use Magento\Eav\Setup\EavSetupFactory;
use Magento\Framework\Setup\InstallDataInterface;
use Magento\Framework\Setup\ModuleContextInterface;
use Magento\Framework\Setup\ModuleDataSetupInterface;
class InstallData implements InstallDataInterface
{
private $eavSetupFactory;
public function __construct(EavSetupFactory $eavSetupFactory)
{
$this->eavSetupFactory = $eavSetupFactory;
}
public function install(ModuleDataSetupInterface $setup, ModuleContextInterface $context)
{
$eavSetup = $this->eavSetupFactory->create(['setup' => $setup]);
$eavSetup->addAttribute(
\Magento\Catalog\Model\Product::ENTITY,
'name',
[
'type' => 'int',
'backend' => '',
'frontend' => '',
'label' => 'attrlabel',
'input' => 'select',
'class' => '',
'source' => 'a\b\Model\Attribute\Source\m',
'global' => \Magento\Eav\Model\Entity\Attribute\ScopedAttributeInterface::SCOPE_GLOBAL,
'visible' => true,
'required' => false,
'user_defined' => true,
'default' => '',
'searchable' => false,
'filterable' => false,
'comparable' => false,
'visible_on_front' => false,
'used_in_product_listing' => true,
'unique' => false,
'apply_to' => '',
'attribute_set' => 'Default',
]
);
}
}
然后,在 etc / module.xml 中,我有:
<module name="Conlabz_IdentityCheck" setup_version="1.0.0" />
但是我仍然看不到该属性的创建。
我还尝试了以下方法:
在Magento根文件夹中,运行以下命令:
php bin/magento module:disable
php bin/magento module:enable
php bin/magento setup:upgrade
php bin/magento cache:flush
一切都成功而没有错误,但是正如我所说,这是行不通的。
我在做什么错了?
答案 0 :(得分:0)
检查文件名 setup / installData.php 。
“ D”应为大写字母。
然后在magento2数据库中搜索表“ setup_module”,并删除“ Conlabz_IdentityCheck”的条目。
然后运行以下命令:
php bin / magento设置:升级
php bin / magento设置:静态内容:部署-f
答案 1 :(得分:0)
在InstallData.php文件中,您必须在第一行添加以下代码:
命名空间Conlabz \ IdentityCheck \ Setup;
然后只需运行CLI命令。
但是,如果您仍然遇到问题,则可以在Magento Attributes上查阅本指南。