Magento:获取属性值列表

时间:2014-01-07 10:48:16

标签: list magento attributes widget

我是Magento的新手,我正在建立一个书店。我有一个名为author的属性,我想显示所有作者的列表(他们的属性值列表)。我试图创建一个小部件并在其中使用此代码,但它返回一个空数组。我怎样才能做到这一点?我应该在哪里放置代码,在窗口小部件中,块?

protected function _toHtml()
{

    $name='author';
    $attributeInfo = Mage::getResourceModel('eav/entity_attribute_collection')->setCodeFilter($name)->getFirstItem();
    $attributeId = $attributeInfo->getAttributeId();
    $attribute = Mage::getModel('catalog/resource_eav_attribute')->load($attributeId);
    $attributeOptions = $attributeInfo->getSource()->getAllOptions(false); 

    $html = '<ul>';
    foreach($attributeOptions as $opt)
        $html .= '<li>'.$opt[0].'</li>';
    $html .= '</ul>';

    return $html;
}

2 个答案:

答案 0 :(得分:0)

$attributes = $product->getAttributes();
foreach ($attributes as $attribute) {
    if ($attribute->getIsVisibleOnFront()) {
        $value = $attribute->getFrontend()->getValue($product);
        echo $value
    }
}

您可以使用此代码获取属性,只需在view.phtml

中编写此代码即可

答案 1 :(得分:0)

非常感谢,您的代码对于特定产品非常有用,但是我终于得到了我想要的东西:

$attributeCode='author';
// build and filter the product collection
$products = Mage::getResourceModel('catalog/product_collection')
    ->addAttributeToFilter($attributeCode, array('notnull' => true))
->addAttributeToFilter($attributeCode, array('neq' => ''))
->addAttributeToSelect($attributeCode);

// get all distinct attribute values
$usedAttributeValues = array_unique($products->getColumnValues($attributeCode));
sort($usedAttributeValues);