以编程方式添加属性

时间:2013-01-04 07:32:30

标签: magento

我正在尝试从设置脚本添加属性。即使添加了属性,但某些选项的值与安装脚本中指定的值不同

/* @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

2 个答案:

答案 0 :(得分:3)

这在EAV设置类中有点奇怪。使用addAttribute时,将重新映射数据数组。 updateAttribute中的情况并非如此。检查类Mage_Eav_Model_Entity_Setup及其_prepareValues()方法。 例如,您的is_required需要简单地“必需”才能按预期工作!

答案 1 :(得分:2)

mpaepper的回答是正确的。此外,在某些情况下,而不是1或0,值必须为true或false。 E.g:

'required' => false,