「属性値」(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を得ました...

...自分の属性値のフロントエンド属性ラベルを読み込む最良の方法は何ですか?(製品全体をロードせずに)

ソリューションのおかげでマリウス

// 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も同じです。たぶん私の要求は正しくありませんが、1つの質問、1人の著者、そして答えはありません。サイトの品質を維持してください。ありがとう。
mageUz

私は@Mariusソリューション加える他の質問に向上しているmagento.stackexchange.com/questions/3003/...を
フラ

1
少なくとも以下MagentoのCE 1.9及びEE 1.14に及び、そのノートgetAttributeText('value')属性の場合は正常に動作しないgetAllOptions()方法戻るオプションは、ネストされた配列で配置され、(として表さ<optgroup>。ドロップダウンで)
タイラー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
「フロントエンド属性ラベル」と混同したので、質問を修正してください。「属性ラベル」ではなく、これは「オプションラベル」または「属性テキスト」です
-mageUz
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.