我在Magento的多个选择属性上使用addAttributeToFilter时遇到了问题。
我有一个汽车制造商的多选属性,所以内容是'Audi','BMW‘等等。在我的例子中,我有一个轮胎产品,我已经从多个选择中选择了5个。
我想展示的产品有制造‘宝马’作为他们选择的领域之一。
我已经尝试了以下所有都不起作用的方法:
$products->addAttributeToFilter('make', array('like' => '%BMW%'));
$products->addFieldToFilter('make', array('like' => '%BMW%'));
$products->addAttributeToFilter('make', array('like' => '%38%')); // id of the attribute option
似乎什么都不起作用。
发布于 2012-05-10 00:39:09
解决方案是使用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
发布于 2018-09-05 15:42:13
尝试下面的语法finset它为我工作。
$collection->addAttributeToFilter($attribute,
array(
array('finset'=> array('237')),
array('finset'=> array('238')),
array('finset'=> array('239')),
)
);
https://stackoverflow.com/questions/10519670
复制相似问题