0

我正在使用产品的属性,availablepostalcodes. 这是一个多选,每个产品有3个选项:1234 2345 3456

现在在我的 categorypage 上的帖子(表单)之后$_POST['postalcode'],它包含 2345。但是当我这样做时,什么都不会过滤:

$_productCollection=$this->getLoadedProductCollection();
$_productCollection->addAttributeToFilter("availablepostalcodes", array("finset"=>"5021"));


echo $_productCollection->load()->count(); 

回显仍然显示 5,但它应该是 1,因为一种产品具有该可用的邮政编码。

这是产品列表视图/catalog/product/list.phtml

我想念或看不到什么?

编辑:

$_productCollection = Mage::getModel('catalog/product')
                              ->getCollection()
                              ->addAttributeToSelect('availablepostalcodes')
                              ->addAttributeToFilter('entity_id', array('in' => $_productCollection->getAllIds()));  

然后我又得到了所有的产品。

但是当我这样做时$_productCollection->addAttributeToFilter("availablepostalcodes", array("in" => array(5021')));它仍然不起作用

4

2 回答 2

1

尝试代替 finset

$_productCollection->addAttributeToFilter("availablepostalcodes", array("in"=>"5021"));
于 2013-06-28T07:44:21.627 回答
1

您有一个多选,因此您需要过滤多选选项 id 而不是选项值!

于 2013-06-29T09:45:01.820 回答