Magento:Mage :: getModel('catalog / category') - >加载($ id)不工作

时间:2012-03-22 10:02:24

标签: magento

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!!!";

         }
     }

它有效吗?

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

4 个答案:

答案 0 :(得分:15)

我认为问题必须在您的单元测试或其他地方。

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)我试过了。

答案 1 :(得分:5)

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

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

2)如果类别不属于“默认类别”

,则不会加载

答案 2 :(得分:2)

可能使用平面类别表并且索引不是最新的。从阿兰风暴中看到这个article

答案 3 :(得分:2)

我希望它一定能奏效,

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