Magento: Mage:: getModel ('catalog/category') → load ($ id) не работает
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, чтобы он был загружен. Я предполагаю, что может возникнуть проблема с областью?
Ответы
Ответ 1
Я думаю, что проблема должна быть в ваших модульных тестах или где-то еще.
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) Я пробовал.
Ответ 2
Что я заметил (да, через 3 года):
1) Категория не будет загружаться, если вы включили категории плоских таблиц, а индексы не обновлены
2) Категория не загружается, если она не включена в "Категория по умолчанию"
Ответ 3
Возможно, использовались таблицы с плоской категорией и индекс не обновлялся. См. Статью статьи из шторма алан.
Ответ 4
Я надеюсь, что это определенно сработает,
$categoryId = 3;
$category = Mage::getModel('catalog/category')
->setStoreId(Mage::app()->getStore()->getId())
->load($categoryId);