我正在尝试为自定义属性设置自定义后端模型。问题是Magento将“Mage”目录添加到路径中,因此我无法将所有文件保存在我的扩展目录中。
代码:
$setup = new Mage_Eav_Model_Entity_Setup('core_setup');
$setup->addAttribute('catalog_category', $postData['attribute_code'], array(
'label' => $postData['frontend_label'],
'input' => $postData['frontend_input'],
'backend' => 'my_company/myextension_model_category_attribute_backend_file',
'required' => $postData['is_required'],
'global' => Mage_Catalog_Model_Resource_Eav_Attribute::SCOPE_STORE,
'group' => $postData['attribute_group_name'],
'sort_order' => $postData['sort_order']
));
而不是相对于我的扩展程序的路径,“Mage”会被添加到前面并导致此错误:
Warning: include(Mage/My_Company/Model/My_Extension/Model/Category/Attribute/Backend/File.php): failed to open stream
我还没有找到适用于addAttribute()方法的解决方案。
在故障排除方面,目前还不清楚Magento在路径前面的位置。
一切都很好(我正在使用文件渲染器),但当然没有后端就无法正确保存。
我在使用Magento 1.6.1。
答案 0 :(得分:1)
仔细检查您的app / code / local / Your_Company / Your_Extension / etc / config.xml是否将您的模型注册到Magento系统:
<global>
...
<models>
<my_company>
<class>Company_Extension_Model_Category_Attribute_Backend_File</class>
</my_company>
</models>
...
</global>