我正在尝试从设置脚本添加属性。即使添加了属性,但某些选项的值与安装脚本中指定的值不同
/* @var $installer Mage_Eav_Model_Entity_Setup */
$installer = $this;
$installer->startSetup();
$entityTypeId = 'catalog_product';
$attributeCode ='dz_video';
$data = array(
'type'=>'textarea',
'input'=>'text',
'label'=>'Video',
'is_required' =>'0',
'is_unique' =>'0',
'is_global' =>Mage_Catalog_Model_Resource_Eav_Attribute::SCOPE_GLOBAL,
'is_comparable'=>'0',
'is_wysiwyg_enabled'=>'0',
'is_searchable'=>'0',
'is_used_for_price_rules'=>'0',
'is_html_allowed_on_front'=>'1',
'is_visible_on_front'=>'1',
'used_in_product_listing'=>'0',
'used_for_sort_by'=>'0',
'user_defined'=>'1',
'is_configurable'=>'1'
);
$installer->addAttribute($entityTypeId,$attributeCode,$data);
例如,'is_required'的指定值为0,但在admin中,“Required”选项设置为Yes
答案 0 :(得分:3)
这在EAV设置类中有点奇怪。使用addAttribute时,将重新映射数据数组。 updateAttribute中的情况并非如此。检查类Mage_Eav_Model_Entity_Setup及其_prepareValues()方法。 例如,您的is_required需要简单地“必需”才能按预期工作!
答案 1 :(得分:2)
mpaepper的回答是正确的。此外,在某些情况下,而不是1或0,值必须为true或false。 E.g:
'required' => false,