Magento: Mage::getModel('catalog/category')->load($id) 不起作用



Mage::getModel('catalog/categy')->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的apacheapache2handlercgicgi-fcgi还是cli SAPI,无论我尝试过哪种Magento版本(CE 1.3、1.5、1.6和EE 1.11),对我来说都非常好。

我注意到(是的,3年后):

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

2) 如果类别未进入"默认类别",则不会加载该类别

可能使用了平面类别表,索引不是最新的。请参阅艾伦·斯托姆的这篇文章。

我希望它肯定会起作用,

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

最新更新