【问题标题】:Magento product display text "array" instead of multiple valuesMagento 产品显示文本“数组”而不是多个值
【发布时间】:2012-05-09 21:28:57
【问题描述】:

在我的 Magento 产品页面上;当产品的一个自定义属性具有多个值时;它不显示值,而是显示文本“数组”。它适用于一个值。 谢谢, -山姆

【问题讨论】:

  • 您必须遍历这些值并单独显示它们。由于您没有提供太多信息,所以我只能提供抱歉。
  • 您好 Zachary,我的产品 view.phtml 文件中有以下代码:<?php echo $_product->getAttributeText('metal') ?> 我将如何遍历它们以使它们全部显示?

标签: arrays magento custom-attributes


【解决方案1】:

你可以这样做:

<?php
    foreach($_product->getMetal() as $name => $value): ?>
<?php echo $name;?> = <?php echo $value;?>
<?php
    endforeach; ?>

Magento 利用了 PHP 神奇的 getter/setter 功能 (http://www.php.net/manual/en/language.oop5.overloading.php#object.get)。

您可以通过vardump($_product) 查看可用属性(它们存储在产品的_data 数组中)。然后要检索其中一个,您只需删除下划线并将每个单词的第一个字母更改为大写即可。

编辑:

如果上面的代码没有输出值,你可以这样做(它会告诉你如何获取值):

<?php
    foreach($_product->getMetal() as $attribute): ?>
<?php var_dump($attribute); ?>
<?php
    endforeach; ?>

【讨论】:

  • 我用你的替换了我的代码;现在它不显示值了。
  • 唯一的问题是我不知道如何用 br 或项目符号分隔值。
【解决方案2】:

我在 Magento 论坛上发现了这个,它似乎有效: `getData('attribute_name')): ?>

getResource()->getAttribute('attribute_name')->getFrontend()->getValue($_product)) ?>

`

【讨论】:

    猜你喜欢
    • 2013-09-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多