我为产品创建了一个新的是/否属性。我已经扩展了 Product 模型来执行一些自定义逻辑,并且自定义函数无处不在。
当我最初尝试获取自定义属性值时,我遇到了一些问题。Magento 没有为我加载它,所以调用 $product->getMyAttributeName() 什么也没做。在产品视图中,我使用了这个附加功能:
public function getAttrVal($attr_name)
{
return $this->getResource()->getAttribute($attr_name)->getFrontend()->getValue($this);
}
因此,在前端查看产品时效果很好。如果设置,它将获取分配的值,否则将获取默认值。
当我查看任何类别(该类别中所有产品的网格)时,正在执行相同的确切代码。但是我的 getAttrVal() 函数总是返回默认值,即使我已经为我的产品明确设置了这个值。
在我的一生中,我无法弄清楚为什么属性在产品视图中正确加载,但类别视图总是获取默认值,尽管运行相同的确切代码。有什么想法吗?