代码之家  ›  专栏  ›  技术社区  ›  Colin O'Dell

magento:属性总是在目录视图中返回默认值,在产品视图中工作正常

  •  1
  • Colin O'Dell  · 技术社区  · 15 年前

    我为产品创建了一个新的“是/否”属性。我已经扩展了产品模型来做一些定制逻辑,定制函数在任何地方都可以工作。

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

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

    所以在前端查看产品时效果很好。如果设置了,它将获取指定的值,否则将获取默认值。

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

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

    1 回复  |  直到 15 年前
        1
  •  1
  •   Joe Mastey    15 年前

    因为magento使用EAV模型作为其可扩展的目录属性,所以并非每个属性都可以转移到每个页面上。尝试修改“目录中显示”和属性上的其他相关变量,它可能会解决您的问题。如果不是,那么说,我们可以尝试其他事情。

    希望有帮助!

    谢谢, 乔