看起来你自己初始化属性,而不是使用Magento属性初始化过程:
Mage::getSingleton('eav/config')
->getAttribute($entityType, $attributeCode)
因为自1.4.x以来,Magento具有针对目录和客户模型的单独的属性模型,并且catalog_product的默认源模型的定义现在已从EAV属性模型(Mage_Eav_Model_Entity_Attribute)移动到目录一(Mage_Catalog_Model_Resource_Eav_Attribute)。
因此,某些目录属性将不能与EAV属性模型一起使用。特别是那些使用Mage_Eav_Model_Entity_Attribute_Source_Table但不明确定义它(颜色,制造商等)的那些。
以下代码片段应该在您的安装上完美运行:
$attribute = Mage::getSingleton('eav/config')
->getAttribute(Mage_Catalog_Model_Product::ENTITY, 'color');
if ($attribute->usesSource()) {
$options = $attribute->getSource()->getAllOptions(false);
}
通过Mage_Eav_Model_Config模型有很多有用的方法,可以在您的开发中使用,所以不要犹豫,研究这个模型。