如何在Magento中获取产品的所有活动属性? [英] How to get all active attributes of products in Magento?

查看:70
本文介绍了如何在Magento中获取产品的所有活动属性?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在Magento中使用新的按产品过滤"模块,这种情况下我应该检索所有属性及其值.我对此进行了Google搜索,发现以下代码

I am working in a new "Filter by Product" module in Magento, i have a situation where i should retrieve all attributes and their values. I Googled this and found the below code


 
$product = Mage::getModel('catalog/product');

$attributes = Mage::getResourceModel('eav/entity_attribute_collection')
      ->setEntityTypeFilter($product->getResource()->getTypeId())
      ->load();

      //      ->addFieldToFilter('attribute_code', 'color') 

$attribute = $attributes->getFirstItem()->setEntity($product->getResource());

/* @var $attribute Mage_Eav_Model_Entity_Attribute */

$attr = $attribute->getSource()->getAllOptions(true);

foreach ($attr as $att) {
    echo " Label : ".$att['label']." Value : ".$att['value']."";
}
 

但是这只会从所有可用属性的列表中检索最后一个属性的标签和值.

but this retrieves only the label and value of last attribute from list of all available attributes.

我如何获得所有属性?我在这段代码中做错了什么?

how to i get all the attributes? what am i doing wrong in this code?

谢谢, 巴兰

推荐答案

尝试一下:

$attributes = Mage::getSingleton('eav/config')
    ->getEntityType(Mage_Catalog_Model_Product::ENTITY)->getAttributeCollection();

// Localize attribute label (if you need it)
$attributes->addStoreLabel(Mage::app()->getStore()->getId());

// Loop over all attributes
foreach ($attributes as $attr) {
    /* @var $attr Mage_Eav_Model_Entity_Attribute */
    // get the store label value
    $label = $attr->getStoreLabel() ? $attr->getStoreLabel() : $attr->getFrontendLabel();
    echo "Attribute: {$label}\n";

    // If it is an attribute with predefined values
    if ($attr->usesSource()) {

        // Get all option values ans labels
        $options = $attr->getSource()->getAllOptions();

        // Output all option labels and values
        foreach ($options as $option)
        {
            echo "    {$option['label']} (Value {$option['value']})\n";
        }
    }
    else
    {
        // Just for clarification of the debug code
        echo "    No select or multiselect attribute\n";
    }
}

这篇关于如何在Magento中获取产品的所有活动属性?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆