Obtenir la valeur de l'option par ID d'attribut dans Magento

12

Comment Magento peut-il trouver une valeur d' attribut par une étiquette d'attribut donnée ou un identifiant d'attribut donné?

Meetai.com
la source
Je crois que ceci est répondu par une autre question SO vue [ici] ( magento.stackexchange.com/a/8396 )
sbditto85

Réponses:

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
la source
11

Autrement dit - utilisez la méthode getAttributeText .

$product->getAttributeText('brand')
PromInc
la source
C'est la bonne réponse.
Owen
1
c'était si difficile à trouver, mais si simple.
Patrick Lee Scott
2

Dans le cas où quelqu'un trouve cette page et souhaite des méthodes bas de recherche d'attributs de toute nature, au lieu de simplement des attributs de produit, voici un exemple pour rechercher un attribut aléatoire que j'ai créé qui est appelé `` spécialité '' et répertorier toutes les options comme un tableau.

$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
la source