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?


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

11

Einfach ausgedrückt: Verwenden Sie die Methode getAttributeText .

$product->getAttributeText('brand')

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();
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.