我想为产品添加属性,我想以编程方式执行此操作。所以我在我的模块中添加了一个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();
语法似乎没问题,但是当执行这部分代码时,问题就出现了:
致命错误:调用未定义的方法 Mage_Core_Model_Resource_Setup ::的addAttribute() 在 /home/frleq/Dev/projets/AVIP/WORKSPACE/avip_magento/app/code/local/Smile/Magentaho/sql/magentaho_setup/mysql4-install-0.1.0.php 第7行
你看到了什么问题吗?代码并不是那么复杂,它的灵感来自现有的和令人担忧的......
谢谢
答案 0 :(得分:27)
您使用的是错误的安装类。检查config.xml中的安装程序类声明。您正在使用Mage_Core_Model_Resource_Setup
。请改为Mage_Eav_Model_Entity_Setup
。
答案 1 :(得分:13)
如果您想使用与产品相关的选项(可过滤,可搜索等),您应该使用 Mage_Catalog_Model_Resource_Eav_Mysql4_Setup 类。
在最新版本的Magento中,你应该使用 Mage_Catalog_Model_Resource_Setup 类。