【发布时间】:2012-05-09 15:56:15
【问题描述】:
我在 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
似乎没有任何效果。
【问题讨论】:
-
是否 $products->addAttributeToFilter('make', '38') 或 $products->addAttributeToFilter('make', array('eq', 38));给你什么?
-
它不起作用。由于它是一个多选属性,Magento 将“make”创建为这样的字符串:28,30,35,38 - 所以如果我需要按 id 38 的 BMW 过滤产品,那么我需要它来检查所有这些值。
-
finset我可以选择吗?类似$products->addAttributeToFilter("make", array("finset"=>"38")); -
谢谢亚历克斯,这似乎可行!
标签: magento addattribute