我正在尝试在模块升级脚本中以编程方式添加自定义属性。该脚本运行良好并创建新属性(即,一旦脚本运行,它就会出现在目录->属性->管理属性下的 Magento 管理列表中)。
起初我正在使用该类Mage_Eav_Model_Entity_Setup
(如此处所推荐的,并且“可见”和“应用到”字段都没有按预期设置(“可见”始终为假,“应用到”保持为“所有产品类型”而不是使用脚本中提供的列表)。
然后我发现了这个,它解释了我应该使用它Mage_Catalog_Model_Resource_Setup
,并且解决了“apply_to”的问题。
但我仍然无法将属性的“可见”属性设置为 true。如果有人知道为什么“可见”属性仍未设置,我将非常感激听到,谢谢!
这是我的升级脚本代码:
$updater = $this; // $this is class Mage_Eav_Model_Entity_Setup
$updater->startSetup();
$updater->addAttribute('catalog_product', 'my_test_attribute', array(
'label' => 'My Test Attribute',
'type' => 'int',
'input' => 'select',
'global' => Mage_Catalog_Model_Resource_Eav_Attribute::SCOPE_GLOBAL,
'apply_to' => 'simple,configurable',
'group' => 'General',
'visible' => true,
'required' => true,
'user_defined' => true,
));
$updater->endSetup();
我在 Windows 7 上的 WAMP 中运行 Magento 1.7.0.1。