Magento: Mage :: getModel ('каталог / категория') -> загрузка ($ id) не работает - PullRequest
10 голосов
/ 22 марта 2012

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, поэтому он загружается. Я думаю, что может быть проблема с областью действия?

Ответы [ 4 ]

15 голосов
/ 22 марта 2012

Я думаю, что проблема должна быть в ваших юнит-тестах или где-то еще.

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) я пробовал.

5 голосов
/ 05 июня 2015

Что я заметил (да, через 3 года):

1) Категория не будет загружаться, если у вас включены плоские таблицы категорий, а индексы не обновлены

2)Категория не будет загружаться, если она не входит в категорию по умолчанию

2 голосов
/ 10 мая 2016

Надеюсь, это точно сработает,

$categoryId = 3;
$category = Mage::getModel('catalog/category')
                ->setStoreId(Mage::app()->getStore()->getId())
                ->load($categoryId);
2 голосов
/ 21 июня 2013

Возможно, использовались таблицы плоских категорий, а индекс не обновлялся. Смотрите эту статью от Алана Шторма.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...