22

現時点では、これを使用してカスタム属性値を取得しています。

$_item = $this->getProduct()->getId();
$_product = $_product = Mage::getModel('catalog/product')->load($_item);  
$optionvalue = $_product->getCustomAttributeValue();
echo $optionvalue;

製品全体をロードせずに、このカスタム値を取得する簡単な方法はありますか?

4

5 に答える 5

40

これは、実行している Magento のバージョンによって異なります。異なるバージョンには異なるオファリングがあります。Community エディション 1.6+ を実行している場合、Catalog モジュールには非常に便利な方法があります

次のことを試してください。

$_item = $this->getProduct()->getId();
$_resource = $this->getProduct()->getResource();
$optionValue = $_resource->getAttributeRawValue($_item, 'custom_attribute_value', Mage::app()->getStore());
echo $optionvalue;

興味がある場合は、Mage_Catalog_Model_Resource_Abstractこの小さな男が何をしているかを確認してください。要求した 1 つの属性 (または、配列を渡すこともできるため、要求した複数の属性) を取得するのは、本質的に単なるクエリです (EAV がそうである傾向があるため、確かにかなり複雑なクエリです)。

于 2013-10-16T16:39:51.340 に答える