【问题标题】:Magento ->addAttributeToFilter - removing selected product from collectionMagento -> addAttributeToFilter - 从集合中删除选定的产品
【发布时间】:2013-03-06 10:09:38
【问题描述】:

我希望在我的产品页面上制作一个简单的相关产品块,我们有大量产品,所以目前使用加售等后端条目并不可行。

下面我有一些代码通过使用“prod_colour”选择类似产品 - 所以如果一个人正在查看米色产品,它会返回该类别中的所有米色产品,然后随机选择 4 显示.

<?php

$thiscolour = $_helper->productAttribute($_product, $_product->getProd_colour(), 'prod_colour');
$bestsellers=Mage::getModel('catalog/category')->load(3);
$collection=$bestsellers->getProductCollection();
$collection->addAttributeToFilter('prod_colour', $thiscolour);
$collection->addAttributeToSelect('small_image');
$collection->getSelect()->order(new Zend_Db_Expr('RAND()'));
$collection->getSelect()->limit(4);

?>

我只是想知道如何从集合中删除当前查看的产品 - 例如,如果我正在查看产品 1,并且产品 1、3、5、7 都是相同的颜色,它会返回所有四个产品 - 我希望删除产品 1,因此该块将仅显示产品 3、5 和 7。

感谢阅读!

【问题讨论】:

    标签: magento


    【解决方案1】:

    您在产品页面上,因此您可以获取产品 ID,以便您可以在产品集合中使用以下过滤条件

    addAttributeToFilter('id', array('neq' => 'yourid'));
    

    更多情况可以查看here

    【讨论】:

    • 您的意思是创建一个获取产品 ID 的变量 - 然后在 'yourid' 所在的位置使用该变量?我试过 $prodid = $_helper->productAttribute($_product, $_product->getId(), 'id');并将变量添加到位,但仍然没有变化!
    • 可以直接放你的id不用定义变量,也可以用sku条件代替id
    • 可以通过变量来实现吗?就像所有产品都需要在自己的产品页面上删除自己一样 - 也感谢链接 - 我也尝试自己输入 ID,但这仍然不能过滤掉产品!
    • 我还打印了查询 - 它显示为 SELECT 1 AS status, e.entity_id, e.type_id, e.attribute_set_id, @ 987654330@.position AS cat_index_position, e.prod_colour, e.small_image FROM catalog_product_flat_1 AS e INNER JOIN catalog_category_product_indexinner JOIN @index.98product7654339 entity_id AND cat_index.store_id=1 AND cat_index.category_id='3' WHERE (e.prod_colour = '9') ORDER BY RAND() LIMIT 4
    • 你也可以使用没问题的变量
    猜你喜欢
    • 2013-10-30
    • 2014-03-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-15
    • 1970-01-01
    • 2013-05-23
    相关资源
    最近更新 更多