Получить значение параметра по идентификатору атрибута в Magento

12

Как Magento может найти значение атрибута по данной метке атрибута или заданному идентификатору атрибута?

Meetai.com
источник
Я полагаю, что на этот вопрос отвечает еще один SO-вопрос, замеченный [здесь] ( magento.stackexchange.com/a/8396 )
sbditto85

Ответы:

16
$productModel = Mage::getModel('catalog/product');
$str_attr_label = "color";  //or "size", etc...
$int_attr_id = 8; // or any given id.
$int_attr_value = 21; // or any given attribute value id.

// Chose either
if ($byLabel){
    $attr = $productModel->getResource()->getAttribute($str_attr_label);
}
if ($byId){
    $attr = Mage::getModel('catalog/resource_eav_attribute')->load($int_attr_id);
}

if ($attr->usesSource()) {
    echo $color_label = $attr->getSource()->getOptionText($int_attr_value);
}       
Meetai.com
источник
11

Проще говоря - используйте метод getAttributeText .

$product->getAttributeText('brand')
PromInc
источник
Это правильный ответ.
Оуэн
1
это было так трудно найти, но так просто.
Патрик Ли Скотт
2

В случае, если кто-то найдет эту страницу и захочет несколько простых методов поиска атрибутов любого типа, а не только атрибутов продукта, вот пример, чтобы найти созданный мной случайный атрибут, который называется «специальность», и перечислить все параметры как массив.

$attr = Mage::getResourceModel('eav/entity_attribute_collection')->setCodeFilter('specialty')->getData()[0];
$attributeModel = Mage::getModel('eav/entity_attribute')->load($attr['attribute_id']);
$src =  $attributeModel->getSource()->getAllOptions();
CarComp
источник