Ответ 1
Вы используете неправильный класс установки. Проверьте свое объявление класса установки в файле config.xml. Вы используете Mage_Core_Model_Resource_Setup
. Вместо этого попробуйте Mage_Eav_Model_Entity_Setup
.
Я хотел бы добавить атрибут к продуктам, и я хочу сделать это программно. Поэтому я добавил 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();
Синтаксис кажется ОК, но когда дело доходит до выполнения этой части кода, вот в чем проблема:
Неустранимая ошибка: вызов метода undefinedMage_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
Вы видите, что неправильно? Код не настолько сложный, и он вдохновлен существующими и волнующими...
Спасибо
Вы используете неправильный класс установки. Проверьте свое объявление класса установки в файле config.xml. Вы используете Mage_Core_Model_Resource_Setup
. Вместо этого попробуйте Mage_Eav_Model_Entity_Setup
.
Если вы хотите использовать связанные с продуктом параметры (фильтруемые, доступные для поиска и т.д.), вы должны использовать класс Mage_Catalog_Model_Resource_Eav_Mysql4_Setup.
В последних версиях Magento вы должны использовать класс Mage_Catalog_Model_Resource_Setup.