我为产品添加了“品牌”属性(下拉列表)。 我正在尝试使用“品牌”属性中的值将新属性(下拉列表)添加到类别。 如何为此类别属性设置正确的来源。 请在mysql安装文件中查看我的代码:
$this->startSetup();
$this->addAttribute('catalog_category', 'brand', array(
'group' => 'General',
'type' => 'int'
'backend' => '',
'frontend_input' => '',
'frontend' => '',
'label' => 'brand',
'input' => 'select'
'class' => '',
'source' => 'mymodule/selecattributes',
'global' => Mage_Catalog_Model_Resource_Eav_Attribute::SCOPE_GLOBAL,
'visible' => true,
'frontend_class' => '',
'required' => false,
'user_defined' => true,
'default' => '',
'position' => 100,
));
$this->endSetup();
提前致谢。
编辑1 我添加了类MyPackage_MyModule_Model_SelectAttributes extends extends Mage_Eav_Model_Entity_Attribute_Source_Abstract:
class MyPackage_MyModule_Model_SelectAttributes extends Mage_Eav_Model_Entity_Attribute_Source_Abstract{
public function getAllOptions()
{
$attributeCode = 'brand';
$attribute = Mage::getModel('eav/config')->getAttribute('catalog_product', $attributeCode); //here, "color" is the attribute_code
$allOptions = $attribute->getSource()->getAllOptions(true, true);
foreach ($allOptions as $instance) {
$myArray[$instance['value']] = $instance['label'];
}
return $myArray;
}
}
编辑2 当我打开类别管理页面时,我收到此错误:
"Source model "mymodule/selectattributes" not found for attribute "brands""
答案 0 :(得分:3)
我猜你的源模型位于名为 Selectattributes.php
的文件中。如果您使用区分大小写的文件系统,则需要执行以下两项操作之一:
将您的班级定义文件重命名为 Selectattributes.php
或
将品牌属性的source_model
值更改为mymodule/selectAttributes
当Magento尝试为您的属性实例化源模型时,计算的类名(以及自动加载包含路径)的工作方式如下:
MyPackage_MyModule_Model_Selectattributes
MyPackage/MyModule/Model/Selectattributes.php
请注意文件名的问题。请注意,此应在非区分大小写的文件系统中工作。