Magento addAttributeToFilter with Multiple Select

时间:2012-05-09 15:56:16

标签: magento addattribute

我在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

似乎没什么用。

2 个答案:

答案 0 :(得分:10)

解决方案是使用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

答案 1 :(得分:0)

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

$collection->addAttributeToFilter($attribute,
    array(
        array('finset'=> array('237')),
        array('finset'=> array('238')),
        array('finset'=> array('239')),
    )
);