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运行此代码,因此它的引导程序。我的猜测是范围可能存在问题?
答案 0 :(得分:15)
我认为问题必须在您的单元测试或其他地方。
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 :(得分:5)
我注意到(是的,3年后)是:
1)如果您启用了类别平面表且索引不是最新的,则不会加载类别
2)如果类别不属于“默认类别”
,则不会加载答案 2 :(得分:2)
可能使用平面类别表并且索引不是最新的。从阿兰风暴中看到这个article。
答案 3 :(得分:2)
我希望它一定能奏效,
$categoryId = 3;
$category = Mage::getModel('catalog/category')
->setStoreId(Mage::app()->getStore()->getId())
->load($categoryId);