【问题标题】:Magento - Get product items attribute in view.phtmlMagento - 在 vi​​ew.phtml 中获取产品项目属性
【发布时间】:2013-07-05 17:55:22
【问题描述】:

我正在尝试在 catalog/category/view.phtml 中加载一个自定义类别来存档我使用的这个:

<?php
$_category = Mage::getModel('catalog/category')->load(47);
$_productCollection = $_category->getProductCollection();
if($_productCollection->count()) {
    foreach( $_productCollection as $_product ):
        echo $_product->getProductUrl();
        echo $this->getPriceHtml($_product, true);
        echo $this->htmlEscape($_product->getName());
    endforeach;
}
?>

例如,我可以加载 URL,现在我想加载自定义属性,例如颜色:

$_product->getResource()->getAttribute('color')->getFrontend()->getValue($_product)

此代码不起作用,我 100% 确定颜色属性已设置为显示在类别列表中,并且此类别中的项目已填充此字段。我知道这一点,因为此代码适用于 list.html

我做错了什么?我正在使用 1.7.0.2。

预期的结果是显示来自自定义类别的所有颜色属性

目录/类别/view.phtml

【问题讨论】:

    标签: magento attributes magento-1.7


    【解决方案1】:

    我不敢相信我刚刚找到了答案。因为我们不在常规类别列表中,所以我们需要将自定义属性添加到集合中。

    代码如下:

    $_productCollection = $_category->getProductCollection()
    ->addAttributeToSelect('color');
    

    【讨论】:

    • 我不小心投了反对票。如果你编辑它,我很乐意收回。
    • 谢谢,非常感谢。
    【解决方案2】:

    如果“颜色”在平面表中,你应该可以

    $_product->getColor();
    

    如果该属性不在集合中,您可以通过使属性可过滤来将其添加到平面表中,将其添加到 PHP 集合调用中

    $_productCollection = $_category->getProductCollection()
        ->addAttributeToSelect('color');
    

    或者加载产品模型获取所有属性

    $_product = Mage::getModel('catalog/product')->load($_product->getId());
    echo $_product->getColor();
    

    【讨论】:

    • 问题是因为你不在列表中“还”Magento 知道这个属性是关联的。至少对我来说它不起作用。
    • 对不起,我不是说你,我的意思是“颜色”不在集合中。
    【解决方案3】:
    1. 使该属性在列表/前端可见

    2. 运行重新索引

    3. foreach( $_productCollection as $_product ): echo $_product->getProductUrl();

    在此代码var_dump $_product-&gt;getData(); 中检查此var_dump 是否导致显示该特定属性值。

    注意:

    $_product->getResource()->getAttribute('color')->getFrontend()->getValue($_product)
    

    不是一种非常有效的调用方式。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-03-27
      • 2023-04-02
      • 1970-01-01
      • 1970-01-01
      • 2013-12-11
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多