In che modo Magento può trovare un valore di attributo tramite una determinata etichetta di attributo o un determinato ID di attributo?
In che modo Magento può trovare un valore di attributo tramite una determinata etichetta di attributo o un determinato ID di attributo?
Risposte:
$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);
}
In poche parole: utilizzare il metodo getAttributeText .
$product->getAttributeText('brand')
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();