Magento2添加产品属性不起作用

时间:2018-09-24 20:02:34

标签: attributes product magento2

我已创建文件 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

一切都成功而没有错误,但是正如我所说,这是行不通的。

我在做什么错了?

2 个答案:

答案 0 :(得分:0)

检查文件名 setup / installData.php

“ D”应为大写字母。

然后在magento2数据库中搜索表“ setup_module”,并删除“ Conlabz_IdentityCheck”的条目。

然后运行以下命令:

php bin / magento设置:升级

php bin / magento设置:静态内容:部署-f

答案 1 :(得分:0)

  1. 首先,文件和文件夹名称应为Setup / InstallData.php
  2. 在InstallData.php文件中,您必须在第一行添加以下代码:

    命名空间Conlabz \ IdentityCheck \ Setup;

然后只需运行CLI命令。

但是,如果您仍然遇到问题,则可以在Magento Attributes上查阅本指南。