【发布时间】:2013-06-28 01:51:56
【问题描述】:
我正在使用产品属性availablepostalcodes。这是一个多选,每个产品有 3 个选项:
1234
2345
第3456章
现在在我 $_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'))); 时它仍然不起作用
【问题讨论】:
-
嘿,你可以像这样打印这个结果 echo $_productCollection->addAttributeToFilter("availablepostalcodes", array("finset"=>"5021"))->__toString(); .结果可以帮助你。
-
致命错误:调用 /home/drnjyser/domains/happentest.nl/public_html/app/design/frontend/default/vanhappen/template/catalog/product 中的未定义方法 Mage_Catalog_Model_Resource_Product_Collection::__toString() /list.phtml 第 42 行
-
方法
getLoadedProductCollection()已经从数据库中加载了产品,所以加载后的任何addAttributeToFilter()都不会也不会对结果产生任何影响。 -
也许集合
clear方法可以取消设置加载的标志,因此可以应用进一步的过滤。 -
我对代码进行了编辑。
标签: php magento attributes