平面中缺少自定义属性 table

Custom Attribute missing in the Flat table

Magento (2.2.4) 没有将带有自定义源的自定义属性添加到平面 table。该属性在产品列表页面(类别)上不可用。在产品详情页面上显示。

$catalogEavSetup->addAttribute(Mage_Catalog_Model_Product::ENTITY, 
'energy_label', array(
    'label' => 'Energielabel',
    'type' => 'int',
    'input' => 'select',
    'used_in_product_listing' => true,
    'visible_on_front' => true, 
    'source' => 'Company\CustomCatalog\Source\EnergyLabel',
    'apply_to' => null,
    'filterable' => false,
    'attribute_model' => null,
    'backend' => null,
    'table' => null,
    'frontend' => null,
    'frontend_class' => null,
    'required' => 0,
    'user_defined' => 1,
    'default' => '',
    'unique' => 0,
    'note' => null,
    'global' => \Magento\Eav\Model\Entity\Attribute\ScopedAttributeInterface::SCOPE_GLOBAL,

));

'visible_on_front' 和 'used_in_product_listing' 都设置为 true。 重建索引没有帮助。

有什么建议吗?

您的自定义源模型还必须实现以下功能:

getFlatColumns()、getFlatIndexes()、getFlatUpdateSelect($store)

如果你实施它们,那么你的属性应该添加到平面 table 之后

php bin/magento indexer:reindex