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é?


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);
}       

11

Autrement dit - utilisez la méthode getAttributeText .

$product->getAttributeText('brand')

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();
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.