我通过安装程序创建了自定义多选产品属性.如果我只从多选值中选择一个选项,它可以保存产品.但是,如果我选择2个值,产品仍然可以保存,但会再次返回1个选定值.简而言之,我无法使用2个选定值保存属性.
$installer = $this;
$installer->startSetup();
$installer->addAttribute('catalog_product', 'attr_id',array(
'label' => 'Frontend Name',
'type' => 'int',
'input' => 'multiselect',
'backend' => 'eav/entity_attribute_backend_array',
'frontend' => '',
'source' => '',
'global' => Mage_Catalog_Model_Resource_Eav_Attribute::SCOPE_GLOBAL,
'visible' => true,
'required' => false,
'user_defined' => true,
'searchable' => false,
'filterable' => false,
'comparable' => false,
'option' => array (
'value' => array(
'0' => array('First Option'),
'1' => array('Second Option'),
'2' => array('Third Option'),
)
),
'visible_on_front' => false,
'visible_in_advanced_search' => false,
'unique' => false
));
$installer->endSetup();
Run Code Online (Sandbox Code Playgroud)
问题来自您的属性类型.
'type'=> 'int',
Run Code Online (Sandbox Code Playgroud)
多选属性的值由逗号连接保存1,4,6
.为此,您需要属性为varchar
或text
.varchar
如果您不打算为该属性提供数百个选项,我建议您这样做.
现在配置方式,当它被保存时,该值1,4,6
将转换为int并最终成为1
.
归档时间: |
|
查看次数: |
7444 次 |
最近记录: |