1

我为产品创建了一个新的是/否属性。我已经扩展了 Product 模型来执行一些自定义逻辑,并且自定义函数无处不在。

当我最初尝试获取自定义属性值时,我遇到了一些问题。Magento 没有为我加载它,所以调用 $product->getMyAttributeName() 什么也没做。在产品视图中,我使用了这个附加功能:

public function getAttrVal($attr_name)
{
    return $this->getResource()->getAttribute($attr_name)->getFrontend()->getValue($this);
}

因此,在前端查看产品时效果很好。如果设置,它将获取分配的值,否则将获取默认值。

当我查看任何类别(该类别中所有产品的网格)时,正在执行相同的确切代码。但是我的 getAttrVal() 函数总是返回默认值,即使我已经为我的产品明确设置了这个值。

在我的一生中,我无法弄清楚为什么属性在产品视图中正确加载,但类别视图总是获取默认值,尽管运行相同的确切代码。有什么想法吗?

4

1 回答 1

1

因为 Magento 对其可扩展目录属性使用 EAV 模型,所以并非每个属性都可以转移到每个页面上。尝试摆弄属性上的“显示在目录中”和其他相关变量,它可能会解决您的问题。如果没有,请说出来,我们可以尝试其他事情。

希望有帮助!

谢谢,乔

于 2010-06-09T23:27:14.957 回答