【问题标题】:Magento - Get a Collection from current viewed product AttributeMagento - 从当前查看的产品属性中获取集合
【发布时间】:2011-11-19 14:30:25
【问题描述】:

我正在尝试在产品视图页面中返回一个产品集合,这些产品由从当前查看的产品获取的属性制成。

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

我刚刚学会这样做:

<?php 

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

?>

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

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

产品/view.phtml

非常感谢您的帮助。

【问题讨论】:

    标签: php magento attributes


    【解决方案1】:

    产品页面已经注册了查看的产品,因此您只需检索它:

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

    【讨论】:

    • 非常感谢!有效!你让我今天很开心。实际上,我有一个与上面留给您的代码有关的问题,尤其是在这里:$collection-&gt;addFieldToFilter('artist', '81'); 我注意到如果我使用实际值标签“Ray Charles”,则此过滤器不起作用,而只能使用该值的 ID。 $collection-&gt;addFieldToFilter('artist', 'Ray Charles'); 由于某种原因无法正常工作。对此有何想法?
    • “下拉”和“多选”类型的属性都存储数字索引而不是文本值。这意味着数据库存储的内容更少,并且可以比文本更快地搜索数字。当您尝试按文本进行过滤时,它不会比较喜欢的内容,因此不会返回任何内容。
    • 有趣。感谢您迄今为止的反馈和时间,您真是太棒了。
    猜你喜欢
    • 2013-08-02
    • 1970-01-01
    • 2014-02-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-05
    相关资源
    最近更新 更多