Ottieni il valore dell'opzione in base all'ID dell'attributo in Magento


12

In che modo Magento può trovare un valore di attributo tramite una determinata etichetta di attributo o un determinato ID di attributo?


Credo che questa sia una risposta da un'altra domanda SO vista [qui] ( magento.stackexchange.com/a/8396 )
sbditto85

Risposte:


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

In poche parole: utilizzare il metodo getAttributeText .

$product->getAttributeText('brand')

Questa è la risposta esatta.
Owen,

1
era così difficile da trovare, eppure così semplice.
Patrick Lee Scott,

2

Nel caso in cui qualcuno trovi questa pagina e desideri metodi bassi per cercare attributi di qualsiasi tipo, anziché solo attributi di prodotto, ecco un esempio per cercare un attributo casuale che ho creato che si chiama 'specialità' ed elencare tutte le opzioni come un array.

$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();
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.