magento - 如何从 Magento 搜索中过滤某些类别的产品?

标签 magento magento-1.7

我尝试在 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/

相关文章:

javascript - 下拉菜单在 slider 上闪烁,仅适用于 Android 版 Chrome

php - Magento - 第 816 行的 fatal error : Call to a member function getBackend() on a non-object in app/code/core/Mage/Eav/Model/Entity/Abstract. php

Magento Soap - 一次通话即可获得详细的产品列表

php - 加入到creditmemo_flat_table

mysql - Magento 商店 - SQL 错误

email - 在 Magento 的自定义模块中发送订单确认邮件

magento - 比较产品侧边栏项目不显示产品

magento - fatal error Varien_Autoload 未找到

php - 如何从 Magento 1.7 REST API 获取访问 token 和访问 token secret

php - 如何在 Magento 中使用外部数据库连接?