Magento 1.4按类别加载不起作用

时间:2010-04-20 18:57:04

标签: php magento mage

我有一个我编写的Magento助手类,它在1.3中运行得非常好。但是,我们正在进行1.4的新安装,按类别过滤不会出于某种原因。

 function __construct()
 {
  Mage::app();
  $this->model = Mage::getModel('catalog/product');
  $this->collection = $this->model->getCollection();
  $this->collection->addAttributeToFilter('status', 1);//enabled
  $this->collection->addAttributeToSelect('*');
 }

 function filterByCategoryID($catID)
 {
  $this->collection->addCategoryFilter(Mage::getModel('catalog/category')->load($catID));
 }

我无法弄清楚为什么这不适用于1.4。还有其他人遇到过这个问题吗?

2 个答案:

答案 0 :(得分:1)

根据您发布的内容,我的猜测是您的代码中还有其他内容可以在您的收藏中添加/删除过滤器。我在1.4安装上运行了以下代码

$collection = Mage::getModel('catalog/product')->getCollection();
$collection->addAttributeToFilter('status', 1)
->addCategoryFilter(Mage::getModel('catalog/category')->load(8))
->addAttributeToSelect('*');

并按预期过滤产品系列。

扩展您的问题,以展示您如何使用助手以及您希望它做什么以及它有何帮助。

答案 1 :(得分:1)

我能够使用下面的代码...

function __construct() { Mage::app(); }

function filterByCategoryID($catID)
{
    //$this->collection->addCategoryFilter(Mage::getModel('catalog/category')->load($catID));
    $this->collection = Mage::getModel('catalog/category')->load($catID);

}

function filterByCategoryID($catID) { //$this->collection->addCategoryFilter(Mage::getModel('catalog/category')->load($catID)); $this->collection = Mage::getModel('catalog/category')->load($catID); }