我为产品创建了新的Yes / No属性。我已经扩展了Product模型来做一些自定义逻辑,并且自定义函数在任何地方都可以使用。
当我最初尝试获取自定义属性值时,我遇到了一些问题。 Magento没有为我加载它,所以调用$ product-> getMyAttributeName()什么也没做。在产品视图中,我使用了这个附加功能:
public function getAttrVal($attr_name)
{
return $this->getResource()->getAttribute($attr_name)->getFrontend()->getValue($this);
}
这样在前端查看产品时效果很好。如果设置,它将获取指定的值,否则返回默认值。
当我查看任何类别(该类别中所有产品的网格)时,正在执行相同的确切代码。但是我的getAttrVal()函数总是返回默认值,即使我已经为我的产品明确设置了这个值。
我不能,为了我的生活,弄清楚为什么属性在Product视图中正确加载,但Category视图总是抓取默认值,尽管运行相同的确切代码。有什么想法吗?
答案 0 :(得分:1)
由于Magento将EAV模型用于其可扩展的目录属性,因此并非每个属性都可以转移到每个页面上。尝试摆弄属性中的“目录中显示”和其他相关变量,它可以解决您的问题。如果没有,请说出来,我们可以尝试其他事情。
希望有所帮助!
谢谢, 乔