2011-11-19 85 views
3

我试图返回产品视图中产品的集合,该属性取自当前查看的产品Magento - 从当前查看的产品获取集合属性

换句话说,假设我出售CD,并且正在查看Ray Charles CD。
在这个产品页面中,我想向其他人展示在'艺术家'属性中具有'Ray Charles'价值的产品。除了此值必须从当前查看产品的“艺术家”值中动态拉取。

我刚刚得知要做到这一点:

<?php 

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

?> 

哪些可以返回基于与“81”的ID艺术家属性产品的集合。但这是静态的。

如何告诉我的收藏以检查当前查看产品的“艺术家”价值并使用它来过滤其结果?

product/view.phtml

非常感谢您的帮助。

回答

3

产品页面已经注册观看产品,所以你只需要找回它:

$currentProduct = Mage::registry('current_product'); 
$collection->addAttributeToFilter('artist', $currentProduct->getArtist()); 
+0

非常感谢!有效!你让我今天很开心。 其实我有一个问题涉及到我留给你的代码,尤其是这里: '$ collection-> addFieldToFilter('artist','81');' 我注意到这个过滤器没有工作,如果我使用实际值标签'Ray Charles',但只能使用该值的ID。 '$ collection-> addFieldToFilter('artist','Ray Charles');'由于某种原因不起作用。有关于此的任何想法? – tomakun

+0

“Dropdown”和“Multiple Select”类型的属性都存储数字索引而不是文本值。这意味着数据库存储较少,并且可以比文本更快地搜索数字。当你尝试按文本进行过滤时,它不会像比较那样进行比较,因此不会返回任何内容。 – clockworkgeek

+0

有趣。感谢您的反馈和时间到目前为止,你一直很棒。 – tomakun