Magento如何通过选项ID获取属性值?

时间:2014-04-10 12:16:12

标签: php magento

所以我有

$attribute_option_id = Mage::getResourceModel('catalog/product')
->getAttributeRawValue($productId, 'my_attribute', $storeId);

这给了我类似$attribute_option_id = 12345

的内容

现在如何获取此ID的(文本)值?

由于

2 个答案:

答案 0 :(得分:8)

这应该有用。

$product = Mage::getModel('catalog/product')->setStoreId($storeId)->load($productId);
$text = $product->getAttributeText('my_attribute');

<强> [编辑]
如果你不想加载完整的产品,你可以做一个偷偷摸摸的想法。冒充产品。

所以你得到了像你已经做的选项ID

$attribute_option_id = Mage::getResourceModel('catalog/product')->getAttributeRawValue($productId, 'my_attribute', $storeId);

然后只创建一个空的产品实例并为其设置一些属性。

$product = Mage::getModel('catalog/product')
    ->setStoreId($storeId)
    ->setData('my_attribute', $attribute_option_id);//the result from above

$text = $product->getAttributeText('my_attribute');

已经确认这是有效的。 See it here

答案 1 :(得分:2)

这是一种适用于我的不同方法。

假设已知:$ _current_productid

$_Current_OptionId =  Mage::getResourceModel('catalog/product')->getAttributeRawValue($_current_productid, $attribute_id,$store_id);

$_write = Mage::getSingleton('core/resource')->getConnection('core_write');

// now $_write is an instance of Zend_Db_Adapter_Abstract

$_readresult=$_write->query("SELECT value FROM eav_attribute_option_value WHERE option_id ='".$_Current_OptionId."'"); 

while ($row = $_readresult->fetch() ) {$_Current_OptionValue=$row['value'];}