Holen Sie sich den Optionswert anhand der ID des Attributs in Magento

11

Wie kann Magento ein Attribut findet Wert von einem bestimmten Attribut - Label oder einer bestimmten Attribut - ID?

Meetai.com
quelle
Ich glaube, dies wird durch eine andere SO-Frage beantwortet, die [hier] ( magento.stackexchange.com/a/8396 ) zu sehen ist
sbditto85

Antworten:

15
$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
quelle
11

Einfach ausgedrückt: Verwenden Sie die Methode getAttributeText .

$product->getAttributeText('brand')
PromInc
quelle
Das ist die richtige Antwort.
Owen
1
das war so schwer zu finden und doch so einfach.
Patrick Lee Scott
2

Falls jemand diese Seite findet und einige Methoden zum Nachschlagen von Attributen jeglicher Art anstelle von nur Produktattributen wünscht, finden Sie hier ein Beispiel, um ein von mir erstelltes zufälliges Attribut mit dem Namen "Spezialität" nachzuschlagen und alle Optionen als aufzulisten eine Anordnung.

$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
quelle