2010-08-11 27 views
15

Ürünlere bir özellik eklemek istiyorum ve bunu program aracılığıyla yapmak istiyorum. Yani benim bir modüle mysql yükleme-0.1.0.php eklendi ve bu (mevcut örneklerden esinlenerek) eklendi:Program aracılığıyla öznitelik nasıl eklenir

<?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(); 

sözdizimi Tamam görünüyor, ama bu bölümü yürütmek için geldiğinde Buradaki kod, işte problem:

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

Neyin yanlış görüyor musunuz? Kod

Yanlış kurulum sınıfını kullanırken size

cevap

27

ederiz ... çok karmaşık değildir ve bu mevcut ve worling olanlardan esinlenmiştir. Config.xml dosyasındaki kurulum sınıfı beyanınızı kontrol edin. Mage_Core_Model_Resource_Setup kullanıyorsunuz. Bunun yerine Mage_Eav_Model_Entity_Setup'u deneyin. Eğer ürün ile ilgili tüm seçenekleri (filtrelenebilir, aranabilir vs.) kullanmak istiyorsanız

+2

, ben config.xml'de Kur sınıfını söylemeyi unutmuşum: Company_Module Mage_Eav_Model_Entity_Setup Çok teşekkürler Anders – frinux

+6

etmeyin! Ürünler/Katalog öznitelikleri ile ilgili "Mage_Eav_Model_Entity_Setup" yerine "Mage_Catalog_Model_Resource_Setup" veya ek öznitelikler ** 'in "_prepareValues ​​()" yöntemi nedeniyle ayarlanmayacaktır (yani "is_searchable", "is_visible_on_front" vb.). kurulum sınıfı. – nevvermind

+1

Her ikisini de kullanmanız gerekirse ne olur? – surfer190

12

, sen Mage_Catalog_Model_Resource_Eav_Mysql4_Setup sınıf kullanmalıdır.

Magento'nun en son sürümlerinde Mage_Catalog_Model_Resource_Setup sınıfını kullanmalısınız. Doğru

+1

En iyi cevap! Visible_on_front gibi ürüne özgü ayarları yapabilmek için bir Mage_Catalog_ * kurulum sınıfı kullanmanız gerekir. –

İlgili konular