0

我必须根据 ajax 请求显示添加到特定类别的产品列表。因此,当我尝试使用类别过滤方法时,它会显示致命错误。使用 magento 1.4.1

致命错误:未捕获的异常“PDOException”,带有消息“SQLSTATE [42S22]:找不到列:/var/www/html/wc2/lib/Zend/Db/ 中的“where 子句”中的 1054 未知列“e.category_ids” Statement/Pdo.php:228 堆栈跟踪:
#0 /var/www/html/wc2/lib/Zend/Db/Statement/Pdo.php(228): PDOStatement->execute(Array)
#1 /var/www/ html/wc2/lib/Zend/Db/Statement.php(300): Zend_Db_Statement_Pdo->_execute(Array)
#2 /var/www/html/wc2/lib/Zend/Db/Adapter/Abstract.php(468): Zend_Db_Statement->execute(Array) > #3 /var/www/html/wc2/lib/Zend/Db/Adapter/Pdo/Abstract.php(238): Zend_Db_Adapter_Abstract->query('SELECT count(DI...' , 大批)
#4 /var/www/html/wc2/lib/Varien/Db/Adapter/Pdo/Mysql.php(333): Zend_Db_Adapter_Pdo_Abstract->query('SELECT count(DI...', Array)
#5 /var/ www/html/wc2/lib/Zend/Db/Adapter/Abstract.php(799): Varien_Db_Adapter_Pdo_Mysql->query('SELECT count(DI...', Array)
#6 /var/www/html/wc2/lib /Varien/Data/Collection/Db.php(210): Zend_Db_Adapter_Abstract->fetchOne('SELECT count(DI...', Array)
#7 /var/www/html/wc2/lib/Varien/Data/Collec in /var/www/html/wc2/lib/Zend/Db/Statement/Pdo.php 在第 234 行

这是我在 ajax 文件中添加的代码

$_productCollection = Mage::getModel('catalog/product')->getCollection()
->addPriceData()       
->addAttributeToSort('name', 'ASC')
->addAttributeToFilter('category_ids',array('finset'=>'604'))
->addCategoryFilter('category_id','604')
->setPageSize($limit)
->setPage($p, $limit)       
->addAttributeToSelect('*');



$_productCollection = Mage::getResourceModel('reports/product_collection')
   ->addAttributeToSelect('*')
   ->setPageSize($limit)
   ->setPage($p, $limit)    
   ->addAttributeToFilter('category_ids',array('finset'=>'66,67'));
foreach ($_productCollection as $_product):
    echo $_product->getId();
endforeach;

他们都没有工作。他们都显示相同的错误。请有人帮助我。谢谢

4

1 回答 1

3
$category = Mage::getModel('catalog/category')->load(604);

$_productCollection = Mage::getModel('catalog/product')->getCollection()
->addPriceData()       
->addAttributeToSort('name', 'ASC')
->addCategoryFilter($category)
->setPageSize($limit)
->setPage($p, $limit)       
->addAttributeToSelect('*');

这个过滤器应该可以工作。

于 2010-12-06T15:05:21.477 回答