Отримайте значення параметра за ідентифікатором атрибута в Magento


12

Як Magento може знайти значення атрибута за заданою міткою атрибута або заданим ідентифікатором атрибута?


Я вважаю, що на це відповідає ще одне питання, яке ви бачите [тут] ( magento.stackexchange.com/a/8396 )
sbditto85

Відповіді:


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

Простіше кажучи - використовуйте метод getAttributeText .

$product->getAttributeText('brand')

Це правильна відповідь.
Оуен

1
це було так важко знайти, але все ж так просто.
Патрік Лі Скотт

2

У випадку, якщо хтось знайде цю сторінку і захоче якісь низькі методи пошуку атрибутів будь-якого типу, а не лише атрибути продукту, ось приклад пошуку випадкового атрибута, який я створив, який називається "спеціальність" та перерахує всі параметри як масив.

$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();
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.