我想为产品添加一个属性,并且我想以编程方式执行此操作。所以我在我的模块中添加了一个 mysql-install-0.1.0.php,并添加了这个(从现有示例中得到启发):
<?php
$installer = $this;
$installer->startSetup();
$installer->addAttribute('catalog_product', 'collection', array(
'type' => 'varchar',
'backend' => '',
'frontend' => '',
'label' => 'Collection',
'input' => 'text',
'class' => '',
'source' => '',
'global' => Mage_Catalog_Model_Resource_Eav_Attribute::SCOPE_GLOBAL,
'visible' => false,
'required' => false,
'user_defined' => false,
'default' => '',
'searchable' => false,
'filterable' => false,
'comparable' => false,
'visible_on_front' => false,
'unique' => false,
'apply_to' => '',
'is_configurable' => false
));
$installer->endSetup();
语法似乎没问题,但是当执行这部分代码时,问题就在这里:
Fatal error: Call to undefined method Mage_Core_Model_Resource_Setup::addAttribute() in /home/frleq/Dev/projets/AVIP/WORKSPACE/avip_magento/app/code/local/Smile/Magentaho/sql/magentaho_setup/mysql4-install-0.1.0.php on line 7
你看到哪里出了问题吗?代码并没有那么复杂,它的灵感来自于现有的和正在开发的代码......
谢谢
最佳答案
您使用了错误的设置类。检查 config.xml 中的设置类声明。您正在使用 Mage_Core_Model_Resource_Setup
。请尝试使用 Mage_Eav_Model_Entity_Setup
。
关于php - 如何以编程方式添加属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3459424/