考虑以下代码:
$productCollection123 = Mage::getModel('catalog/product')->getCollection()
->addStoreFilter(Mage::app()->getStore())
->addAttributeToFilter('type_id', array('eq' => 'simple'))
->addAttributeToFilter('color',5);
因此结果计数为count($productCollection123) = 57
,现在是否可以执行removeAttributeFromFilter
,以便从当前集合结果中删除条件'color'=5
?
注意:不应删除条件'type_id'='simple'
答案 0 :(得分:3)
不,您必须构建一个新查询。一旦使用带条件的查询命中数据库,您不仅可以删除条件并拥有新数据,还必须构建新查询。
答案 1 :(得分:1)
Afaik标准Magento没有任何方法可以明确删除过滤器(除了clear()
,它会重置所有过滤器并卸载集合)。
说实话,在加载集合后删除过滤器没有多大意义。至少对我而言。
我唯一想到的就是构建一个具有最小过滤器(第二个)的集合,然后clone
,并使用最大过滤器(第一个)扩展克隆。
这可以节省一些代码行,但缺乏可读性/可维护性。