gpt4 book ai didi

php - Magento - 在分组产品表中显示自定义属性

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:43:10 27 4
gpt4 key购买 nike

我需要找到一种方法来显示自定义属性的值,以代替下图中显示的“产品名称”。

Grouped products table
(来源:magentocommerce.com)

我正在使用/app/design/frontend/default/defaultx/template/catalog/product/view/type/grouped.php

下面的代码不起作用(自定义属性是 yearmade):

<?php if (count($_associatedProducts)): ?>  
<?php foreach ($_associatedProducts as $_item): ?>
<tr>
<td><?php echo $this->htmlEscape($_item->getYearmade()) ?></td>

如有任何帮助,我们将不胜感激。

编辑:所以答案原来很简单。你看,我上面没有提到的是确实有输出...但它只是一个数字(例如:52)。原来这是该自定义属性值的 ID(这是自定义属性的下拉类型)。

综上所述
这适用于文本类型的自定义属性:

echo $this->htmlEscape($_item->getYearmade())

但对于所有其他类型的自定义属性(我认为),应使用以下内容:

echo $this->htmlEscape($_item->getAttributeText('yearmade'))

如果没有下面 Alan Storm 提供的最出色的答案,我就不会发现这一点。谢谢先生。

最佳答案

所有 Magento 模型都有可用的“getData”方法,它将返回键/值对的 php 数组。在 grouped.phtml 文件的顶部试试这个(在定义 $_product 之后)

print('<pre>');print_r($_product->getData());print('</pre>');

您应该会看到如下所示的输出。

Array
(
[store_id] => 1
[entity_id] => 3437
[entity_type_id] => 4
[attribute_set_id] => 27
[type_id] => grouped
[sku] =>
[category_ids] =>
[created_at] => 2009-04-16 03:37:51
...

因此,您可以获取一组属性,然后只需拔出 key 即可。您还可以使用 Magento 的便利/神奇 getX 和 setX 方法。在所有 Magento 模型上,您可以通过调用基于名称的驼峰式大小写版本的方法来访问数据数组中的任何属性,

$created_at = $_product->getCreatedAt();
$_product->setCreatedAt($date);

因此,无论您的自定义属性名称是什么,您都应该能够使用上面的方法来获取它,如果您不确定只是 print_r 或 var_dump getData() 返回的数组的内容。

最后,如果自定义属性在相关产品简单产品之一上,您会想要更像的东西

$_associatedProducts[0]->getCreatedAt();

关于php - Magento - 在分组产品表中显示自定义属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1005394/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com