2012-01-24 31 views
5

Tôi đang cố gắng tự động thiết lập thuộc tính và thuộc tính thông qua tập lệnh thiết lập. Kịch bản đang hoạt động và tất cả các thuộc tính được thêm vào bộ, không có vấn đề với điều đó ... tuy nhiên, khi tôi nhìn vào các thuộc tính visible_on_front, used_in_product_listingglobal không được đặt chính xác. Đây là những gì tôi có:Thiết lập mô-đun/cài đặt mô-đun Magento

$installer->addAttribute('catalog_product', '<attribute_code>', array(
    'group'   => 'General', 
    'input'   => 'date', 
    'type'   => 'datetime', 
    'label'   => '<some_label>', 
    'backend'  => 'eav/entity_attribute_backend_datetime', 
    'is_global'  => 0, 
    'global'  => Mage_Catalog_Model_Resource_Eav_Attribute::SCOPE_WEBSITE, 
    'is_visible_on_front'  => 1, 
    'visible_on_front'   => 1, 
    'used_in_product_listing' => 1, 
)); 

Bất kỳ ai biết cách khắc phục lỗi này để nó hoạt động?

Trả lời

19

Bí quyết ở đây là để đảm bảo rằng bạn đang sử dụng đúng đối tượng Thiết lập. Đối tượng Thiết lập mặc định là Mage_Eav_Model_Entity_Setup sẽ thêm thuộc tính của bạn vào bảng eav_attribute nhưng không nhận biết được các trường thừa trong catalog_eav_attribute chẳng hạn như used_in_product_listing (hoặc customer_eav_attribute và các trường của nó cho vấn đề đó).

Vì vậy, thêm này ở phía trên cùng của kịch bản cài đặt:

$installer = new Mage_Catalog_Model_Resource_Eav_Mysql4_Setup('core_setup'); 
$installer->startSetup(); 

Điều đó sẽ tạo sự khác biệt.

FYI, bạn có thể sử dụng Mage_Customer_Model_Entity_Setup để đạt được cùng một kết thúc cho thuộc tính của khách hàng.

+0

THX cho điều đó ..! –

+0

bạn là con trai của thần. cảm ơn. – Nikitas

+0

Rực rỡ, điều này đã khắc phục được sự cố của tôi! Bạn là người đàn ông Jonathan Day. –

Các vấn đề liên quan