Magento - 从当前查看的产品属性获取集合

3

我正在尝试返回一个产品集合,用于显示在当前浏览的产品页面上,该集合通过从当前浏览的产品中获取的属性进行制作。

换句话说,假设我销售CD,我正在查看雷·查尔斯(Ray Charles)的CD。在这个产品页面上,我希望展示其他具有“艺术家”属性值为“雷·查尔斯”的产品。但是这个值必须动态地从当前浏览的产品的“艺术家”值中获取。

我刚学会了如何实现这一点:

<?php 

    $model = Mage::getModel('catalog/product');
    $collection = $model->getCollection();;
    $collection->addFieldToFilter('artist', '81');
    $collection->load();

?>

这个函数可以根据ID为“81”的艺术家属性返回一组产品集合。但这是静态的。

我该如何告诉我的集合检查“当前查看的产品”的“艺术家”值,并使用它来过滤结果?

product/view.phtml

非常感谢您的帮助。

1个回答

3
产品页面已经注册了已查看的产品,因此您只需要检索它即可。
$currentProduct = Mage::registry('current_product');
$collection->addAttributeToFilter('artist', $currentProduct->getArtist());

非常感谢!它起作用了!你让我今天过得很愉快。实际上,我有一个与我上面留给你的代码相关的问题,特别是这里: $collection->addFieldToFilter('artist', '81'); 我注意到如果我使用实际值标签“雷·查尔斯”,这个过滤器不起作用,但只能使用该值的ID才能起作用。 $collection->addFieldToFilter('artist', 'Ray Charles');由于某种原因无法工作。对此有什么想法吗? - tomakun
“Dropdown”和“Multiple Select”类型的属性都存储数字索引而不是文本值。这意味着数据库需要存储的内容更少,可以比文本更快地搜索数字。当您尝试按文本过滤时,它并不是在进行类似的比较,因此没有返回任何结果。 - clockworkgeek
有趣。感谢您迄今为止的反馈和时间,您一直很棒。 - tomakun

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接