用 select 框扩展类别属性集(多选)

Extend category attribute set with select box (multiple choose)

我正在尝试完成一个 select 框,在类别的后端选择多个选项。

创建 select 框的脚本到目前为止可以正常工作,但只能使用单选。

$installer = $this;
$installer->startSetup();

$attribute  = array(
        'group'                     => 'Examplegroup',
        'input'                     => 'select', // also tried multiselect
        'type'                      => 'varchar',
        'label'                     => 'Examplelabel',
        'global'                    => Mage_Catalog_Model_Resource_Eav_Attribute::SCOPE_GLOBAL,
        'visible'                   => 1,
        'required'                  => 0,
        'visible_on_front'          => 0,
        'is_html_allowed_on_front'  => 0,
        'is_configurable'           => 0,
        'searchable'                => 0,
        'filterable'                => 1,
        'comparable'                => 0,
        'unique'                    => false,
        'user_defined'              => true,
        'default'                   => '',
        'is_user_defined'           => false,
        'used_in_product_listing'   => true,
        'option'                    => array('values' => array('option1', 'option2', 'option3', 'option4'))
);
$installer->addAttribute('catalog_category', 'attribute_name', $attribute);


$installer->endSetup();

我如何实现这个

我假设它应该与 multiselect 的输入类型一起使用,但它在升级后保留了单选选项。

对于多选选项,将 input 设置为 multiselect 并添加 backend 模型 eav/entity_attribute_backend_array

$installer = $this;
$installer->startSetup();

$attribute  = array(
        'group'                     => 'Examplegroup',
        'input'                     => 'multiselect',
        'type'                      => 'varchar',
        'label'                     => 'Examplelabel',
        'backend'                   => 'eav/entity_attribute_backend_array',
        'global'                    => Mage_Catalog_Model_Resource_Eav_Attribute::SCOPE_GLOBAL,
        'visible'                   => 1,
        'required'                  => 0,
        'visible_on_front'          => 0,
        'is_html_allowed_on_front'  => 0,
        'is_configurable'           => 0,
        'searchable'                => 0,
        'filterable'                => 1,
        'comparable'                => 0,
        'unique'                    => false,
        'user_defined'              => true,
        'default'                   => '',
        'is_user_defined'           => false,
        'used_in_product_listing'   => true,
        'option'                    => array('values' => array('option1', 'option2', 'option3', 'option4'))
);
$installer->addAttribute('catalog_category', 'attribute_name', $attribute);


$installer->endSetup();

运行以下升级脚本更新现有属性,

$installer->startSetup();

$installer->updateAttribute('catalog_category', 'attribute_name', 'frontend_input', 'multiselect');
$installer->updateAttribute('catalog_category', 'attribute_name', 'backend_model', 'eav/entity_attribute_backend_array');

$installer->endSetup();

查看 Mage_Eav_Model_Entity_Attribute_Backend_ArraybeforeSave 函数 class 以进一步了解后端模型。

希望对您有所帮助!