参考 Magento 1.7 按多个类别过滤产品 我有一个新问题:
我正在使用 Magento 1.7.0.2,并且所描述的按多个类别(通过 AND)过滤产品集合的解决方案对我不起作用。
我的分类结构:
- 根
- 猫 1
- 猫 1a
- 猫 1b
- 猫 2
- 猫 2a
- 猫 2b
- 猫 3
- 猫 1
例如,产品可以同时在 cat 1a、cat 2 和 cat 2b 中。如果我过滤,它应该被列出:
- 在猫 1a 之后
- 在猫 1a 和猫 2 之后
- 在猫 1a 和 2b 和 2 之后
如果我过滤,它一定不可见:
- 在猫 3 之后
- 在猫 1 和猫 1a 之后
- 在猫 1a 和 2a 之后
我的代码:
$_productCollection = Mage::getModel('catalog/product')
->getCollection()
->joinField('category_id', 'catalog/category_product', 'category_id', 'product_id = entity_id', null, 'left')
->addAttributeToSelect('*')
->addAttributeToFilter('category_id',
array("finset" => array(53, 46))
);
这给了我一个 SQL 错误:
#1582 - Incorrect parameter count in the call to native function 'FIND_IN_SET'
SELECT `e`.*, `at_category_id`.`category_id` FROM `catalog_product_entity` AS `e`
LEFT JOIN `catalog_category_product` AS `at_category_id` ON (at_category_id.`product_id`=e.entity_id) WHERE (FIND_IN_SET(53, 46, at_category_id.category_id))
我要做什么才能完成这项工作?