4

我在 Magento 多选属性上使用 addAttributeToFilter 时遇到问题。

我有一个汽车品牌的多选属性,所以内容是“奥迪”、“宝马”等。在我的示例中,我有一个轮胎产品,我从多项选择中选择了 5 个品牌。

我想展示将“BMW”品牌作为其选定字段之一的产品。

我已经尝试了以下所有这些都不起作用:

$products->addAttributeToFilter('make', array('like' => '%BMW%'));  
$products->addFieldToFilter('make', array('like' => '%BMW%'));  
$products->addAttributeToFilter('make', array('like' => '%38%')); // id of the attribute option

似乎没有任何效果。

4

2 回答 2

12

解决方案是使用Find In Set查询,例如:

$this->_productCollection->addAttributeToFilter("make", array("finset"=>"38"));

可以在这里看到讨论:http: //www.magentocommerce.com/boards/viewthread/201312/

以及不同选项的列表:http: //www.magentocommerce.com/knowledge-base/entry/magento-for-dev-part-8-varien-data-collections

于 2012-05-09T16:39:08.813 回答
0

试试下面的语法 finset 它对我有用。

$collection->addAttributeToFilter($attribute,
    array(
        array('finset'=> array('237')),
        array('finset'=> array('238')),
        array('finset'=> array('239')),
    )
);
于 2018-09-05T07:42:13.387 回答