在过去的一周期间我有魄力非常奇怪和强调的东西与我的同事们: 通过在 Magento 中的多个类别的筛选产品集合。
按只 1 类别筛选
Magento 提供筛选器,可以使用直接从该集合的类型:
$_category = Mage::getModel('catalog/category')-> load($category_id);
$collection-> addCategoryFilter($_category);
由 2 个或更多类别筛选
这是一个完全不同的故事。它是非常重要的是正确行事,以避免错误的类型:
[] blockquote项目 (Mage_Catalog_Model_Product) 具有相同的 id 已经存在 [/blockquote]
以下列方式进行:
1.通过您要筛选 (除了第一类) 的属性调用您收集和筛选器。例如:
$collection = Mage::getResourceModel('catalog/product_collection')
-> addFieldToFilter('is_saleable',1)
-> addFieldToFilter ('type_id)',数组 ('情商' = > '配置')) ;
2.后执行此操作,您可以应用您多个类别筛选,如下所示:
$categories_to_filter = 数组 (' 3 ′,' 4 ′,' 5 ′) ;
$ctf = array ();
foreach (作为 $k $categories_to_filter = > $cat) {
$ctf [] ['finset'] = $cat;
}
$collection-> joinField ('category_id',' 目录/category_product ','category_id',' 产品关键字 = entity_id',为 null,'左')
-> addAttributeToFilter('category_id',array($ctf));
重要事项: 顺序来做这个如果你不想面对奇怪 Magento 问题。
|