Magento 2 属性未显示在导航中

Magento 2 Attribute Not Show In Navigation

我在将 magento 2.1.9 应用到我的项目时遇到问题。

我的属性是ab_size

我已经用代码 blow 创建了那个属性。

$categorySetup = $this->categorySetupFactory->create(['setup' => $setup]);
        $entityTypeId = $categorySetup->getEntityTypeId(\Magento\Catalog\Model\Product::ENTITY);

        foreach ($singleAttributeCodes as $key => $label) {
            $categorySetup->removeAttribute($entityTypeId, $key);
            $categorySetup->addAttribute(
                $entityTypeId,
                $key,
                [
                    'type' => 'varchar',
                    'label' => $label,
                    'input' => 'select',
                    'required' => false,
                    'sort_order' => $sortOrder,
                    'visible' => true,
                    'user_defined' => true,
                    'global' => \Magento\Eav\Model\Entity\Attribute\ScopedAttributeInterface::SCOPE_GLOBAL,
                    'filterable' => 0,
                    'visible_on_front' => true,
                    'used_in_product_listing' => true,
                    'group' => $group,
                    'apply_to' => 'simple,configurable,bundle,downloadable,grouped',
                ]
            );
        }

后台有配置。

  1. 启用过滤器(有结果)完成
  2. 类别是锚点完成
  3. 重建索引完成
  4. 启用分类平面完成
  5. 启用产品扁平化完成
  6. 重新索引所有数据完成
  7. 清除缓存完成
  8. 使用magento clean没有任何扩展完成
  9. 检查属性颜色(在导航中显示)
  10. 产品价格显示
  11. 类别显示

    关于我的系统信息

  12. CentOS 7.0

  13. Litespeed
  14. Php7.0
  15. Magento CE 2.1.9

我已调试产品收集桶 return 为空

我认为创建属性代码的问题,有没有人遇到同样的问题。

谢谢大家指教。

我认为您用这段代码弄乱了您的属性。 看看它,它删除了所有属性并添加了它们,但是作为 varchar 类型,这可能不适用于所有属性。 我建议重置您的 Magento 数据库,然后使用如下代码添加属性。

由于我不知道您打算使用此属性做什么,下面的某些设置可能不适用于您的用例。

 $categorySetup->addAttribute(
    \Magento\Catalog\Model\Product::ENTITY,
        'ab_size',
        [
            'type' => 'varchar',
            'backend' => '',
            'frontend' => '',
            'label' => 'AB Size',
            'input' => 'select',
            'class' => '',
            'source' => '',
            'backend' => 'Magento\Eav\Model\Entity\Attribute\Backend\ArrayBackend',
            'global' => \Magento\Catalog\Model\ResourceModel\Eav\Attribute::SCOPE_GLOBAL,
            'visible' => true,
            'required' => false,
            'user_defined' => true,
            'default' => 0,
            'searchable' => false,
            'filterable' => true,
            'comparable' => false,
            'visible_on_front' => true,
            'used_in_product_listing' => true,
            'unique' => false,
            'apply_to' => ''
        ]
    );

对于 select 属性,我们必须使用 int..

类型