Magento:Mage::getModel(';目录/类别';)->;加载($id)不工作

Magento:Mage::getModel(';目录/类别';)->;加载($id)不工作,magento,Magento,Mage::getModel('catalog/category')->load($id)不工作(没有加载数据,getId()为空) 但如果我这样做: $collection = Mage::getModel('catalog/category')->getCollection(); foreach($collection as $category) { if($category->getId() == $id) { e

Mage::getModel('catalog/category')->load($id)不工作(没有加载数据,getId()为空)

但如果我这样做:

     $collection = Mage::getModel('catalog/category')->getCollection();
     foreach($collection as $category) {
         if($category->getId() == $id) {
             echo "it has been founnnd!!!";

         }
     }
有效吗


我应该提到的是,我正在通过cli和phpunit测试运行这段代码,因此它是引导的。我的猜测是可能存在范围问题?

我认为问题一定是单元测试或其他方面的问题

Mage::getModel('catalog/category')
  ->setStoreId($store_id)
  ->load($id);

无论我使用的是PHP的
apache
apache2handler
cgi
cgi fcgi
cli
SAPI,还是我尝试过的Magento版本(CE 1.3、1.5、1.6和EE 1.11)。

可能使用了扁平的分类表,索引不是最新的。从艾伦·斯托姆那里可以看出这一点。

我注意到(是的,三年后)是这样的:

1) 如果启用了类别平面表且索引不是最新的,则不会加载类别


2) 如果不是“默认类别”,类别将不会加载。

我希望它一定会工作

$categoryId = 3;
$category = Mage::getModel('catalog/category')
                ->setStoreId(Mage::app()->getStore()->getId())
                ->load($categoryId);