使用Magento中的单个Collection获取属性及其值?

时间:2012-02-18 13:38:32

标签: magento

如何使用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

 

谢谢,

巴兰

1 个答案:

答案 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/configeav/entity_type机会,您将重用已经加载的集合,这当然比在新集合中重新加载相同数据更有效。

编辑:更新了答案,以包含Aleksandr Ryabov建议的属性收集过滤器。