下面的代码我试图创建一个产品集合并对其进行过滤,但是,它没有给我一个准确的产品数量,我不知道为什么。
$collection = Mage::getModel('catalog/product')->getCollection();
$collection->addAttributeToSelect('*')
->joinField('category_id', 'catalog/category_product', 'category_id', 'product_id = entity_id', null, 'left')
->addFieldToFilter(array(
array('attribute'=>'distributor','in'=>array(intval($distributor))),
))
->addAttributeToFilter('category_id', array(
array('finset' => strval($cat->getId())),
));
$count = $collection->getSize();
例如,我有一个包含大约 30 个产品的分销商过滤器的类别,但上面代码中的计数显示为 20。对于另一个有 3 个产品但计数返回 2 的类别也是如此。
更新:我自己使用 finset 解决了这个问题。请看下面我的回答