5

我正在尝试在模块升级脚本中以编程方式添加自定义属性。该脚本运行良好并创建新属性(即,一旦脚本运行,它就会出现在目录->属性->管理属性下的 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。

4

2 回答 2

1

我现在已经解决了这个问题 - 它需要设置“visible_on_front”属性,而不仅仅是“可见”。即我在上面的脚本中添加了这一行,它现在可以工作了:

'visible_on_front'  => true,
于 2012-11-12T12:23:13.490 回答
0

这个属性不是布尔值,它是整数。所以你已经设置了 1 = true 0 = false;

于 2012-11-09T18:27:48.710 回答