如何使用Magento中的单个Collection获取属性及其值? 现在我在下面使用
$attributesInfo = Mage::getResourceModel('eav/entity_attribute_collection')
->setEntityTypeFilter(4)
->addFieldToFilter('frontend_input','multiselect')
->addSetInfo()
->getData();
获取属性及以下代码以获取属性值
$product = Mage::getModel('catalog/product');
$collection = Mage::getResourceModel('eav/entity_attribute_collection')
->setEntityTypeFilter($product->getResource()->getTypeId())
->addFieldToFilter('attribute_code', $attributeName);
我的属性代码输出如下
Color :
Black
Blue
Green
Brand :
Hp
Dell
Apple
Size :
12
14
16
谢谢,
巴兰
答案 0 :(得分:17)
这个怎么样:
$attributes = Mage::getSingleton('eav/config')
->getEntityType(Mage_Catalog_Model_Product::ENTITY)
->getAttributeCollection()
->addFieldToFilter('source_model', array('notnull' => true))
->addSetInfo();
foreach ($attributes as $attribute)
{
echo "{$attribute->getFrontendLabel()}:\n";
foreach ($attribute->getSource()->getAllOptions() as $option)
{
echo " {$option['label']}\n";
}
echo "\n";
}
通过使用eav/config
和eav/entity_type
机会,您将重用已经加载的集合,这当然比在新集合中重新加载相同数据更有效。
编辑:更新了答案,以包含Aleksandr Ryabov建议的属性收集过滤器。