我尝试在 Mage/Catalog/Block/Product/List.php, _getProductCollection() 上添加以下内容
$this->_productCollection
->addAttributeToFilter('category_id', array('nin' => array('36,37'),));
但它想出了:
Fatal error: Call to a member function getBackend() on a non-object in C:\app\code\core\Mage\Eav\Model\Entity\Abstract.php on line 816
我怀疑这是因为它正在寻找产品没有“category_id”的属性,我尝试添加:
$this->_productCollection
->joinField('category_id', 'catalog/category_product', 'category_id', 'product_id = entity_id', null, 'left')
->addAttributeToFilter('category_id', array('nin' => array('36,37'),));
但这会带来另一个错误:
Joined field with this alias is already declared"
我做错了什么?
Mage/Catalog/Block/Product/List.php 是应用此覆盖的正确文件吗?
我只是希望它适用于搜索结果,即 Catalogsearch/result/
最佳答案
尝试使用 ** ->addCategoriesFilter($category);** 而不是 ->addAttributeToFilter(
这对我有用:)
关于magento - 如何从 Magento 搜索中过滤某些类别的产品?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18607054/