Як отримати атрибут "мітка опції / текст атрибута", що має "значення атрибута" (option_id)?


18

Припустимо, у мене є атрибут, який є набором опцій (випадаючий / мультиселекторний).

Я можу отримати значення атрибуту для даного продукту:

$store_id = [something];
$productId = [something];
// this is a select/multiselect
$attribute_code = [something]; 

$option_id = Mage::getResourceModel('catalog/product')->getAttributeRawValue($productId, $attribute_code, $store_id );
$option_label = ???

Тепер я отримав атрибут option_id, який є числовим значенням ...

... Який найкращий спосіб завантажити мітку атрибутів frontend для мого значення атрибута? (без завантаження повного продукту)

Рішення дякую Маріусу :

// Not loading the product - just creating a simple instance
$product = Mage::getModel('catalog/product')
->setStoreId($store_id)
->setData($attribute_code,$option_id); 
$option_label = $product->getAttributeText($attribute_code);

2
Чому це питання кілька разів задається точним автором, і всі вони бентежать користувачів. Чи можемо ми позначити такими ж дублікатами, як ці питання, без правильних відповідей? На це magento.stackexchange.com/questions/3003 запитання, задане автором, немає правильних відповідей, але чому це підтверджує (і дається власна відповідь)! Цей magento.stackexchange.com/questions/976 теж є таким же. Можливо, мій запит невірний, але одне запитання, один автор і відповіді немає. Будь ласка, зберігайте якість сайту. Спасибі.
mageUz

Я поліпшив інше питання , додавши @Marius рішення magento.stackexchange.com/questions/3003 / ...
Від

1
Зауважте, що принаймні у Magento CE 1.9 та EE 1.14 і нижче getAttributeText('value')не працює правильно, якщо getAllOptions()метод атрибута повертає параметри, впорядковані з вкладеними масивами (виражаються <optgroup>у спадному меню)
Tyler V.

Відповіді:


49

Окрім коду, поставте це:

$product = Mage::getModel('catalog/product')
                ->setStoreId($store_id)
                ->setBrand($brand_value); // not loading the product - just creating a simple instance
$brandLabel = $product->getAttributeText('brand');

9
$attribute = Mage::getModel('catalog/resource_eav_attribute')
            ->loadByCode(Mage_Catalog_Model_Product::ENTITY, 'manufacturer');
$label     = $attribute->getFrontendLabel();

1
Я переплутав "ярлик атрибутів frontend", будь ласка, виправте питання. Не "мітка атрибутів", це "мітка опцій" або "текст атрибута"
mageUz
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.