为什么Magento 2中对多选属性的支持明确地从视觉商家的允许属性集合中删除了#34;智能类别"?我们在Magento 1中使用过它,但需要一种方法在Magento 2中恢复相同的功能。
这是从集合中显式过滤掉属性的地方。
vendor/magento/module-visual-merchandiser/Model/Config/Source/AllowedAttributes.php
我可以这样删除:(显然我会通过插件来实现这个功能)
public function toOptionArray()
{
$entityTypeId = $this->type->loadByCode(\Magento\Catalog\Model\Product::ENTITY)->getId();
if ($entityTypeId) {
$collection = $this->attribute->getCollection()
->removeAllFieldsFromSelect()
->addFieldToSelect('attribute_code', 'value')
->addFieldToSelect('frontend_label', 'label')
->addFieldToFilter('entity_type_id', ['eq' = $entityTypeId]);
// removes multi: ->addFieldToFilter('frontend_input', ['neq' => 'multiselect']);
$attributes = $collection->toArray();
if (isset($attributes['items'])) {
$this->options = $attributes['items'];
}
}
return $this->options;
}
但是我觉得这只是冰山的一角。需要什么显示逻辑才能正确解析这些属性并将相应的产品加入集合?