2016-03-16 4 views
0

У меня проблема: Клиенты не могут зарегистрироваться, войти в систему и выйти из системы без фатальной ошибки (включена отладка).setCustomerid() Неустранимая ошибка Magento 1.9.2.1

Fatal error: Call to a member function setCustomerId() on a non-object in ../public_html/app/code/core/Mage/Reports/Model/Product/Index/Abstract.php on line 169

Вот фрагмент кода из строки 161 - 180:

/** 
* Calculate count of product index items cache 
* 
* @return Mage_Reports_Model_Product_Index_Abstract 
*/ 
public function calculate() 
{ 
    $collection = $this->getCollection() 
     ->setCustomerId($this->getCustomerId()) 
     ->addIndexFilter(); 


    Mage::getSingleton('catalog/product_visibility') 
     ->addVisibleInSiteFilterToCollection($collection); 

    $count = $collection->getSize(); 
    $this->_getSession()->setData($this->_countCacheKey, $count); 
    return $this; 
} 

Что я сделал, спасибо ответы на подобные вопросы:

  • Cookie настройки.
  • Отключенные (все) модули, один за другим. По xml, бэкэнд администратора и удаление. Также проверяется, были ли какие-либо обновления (их не было).
  • Освеженный кэша, удаление кэша, кэш отключен (то же самое для сеансов)
  • каталог Set Var, средства массовой информации, загрузчик и в конечном итоге все папки и файлы 777.
  • Установите все необходимые разрешения снова, благодаря magento- cleanup.php.
  • Проверял базу данных на неправильном базовом адресе, защищенном и незащищенном.
  • Полный каталог переписать, загрузить с чистой установки пурпурного цвета.
  • Проверил настройки сервера с, не безопасный модус (не действительно получил BASEDIR открытый каталог)

Кроме того, я перенаправлены карапуз страницу 404 в серверной. С URL-адресом NoRoute после правильного входа в систему. Я вижу и могу использовать все в бэкэнд, включая меню навигации.

Я использую шаблон и некоторые настройки с помощью модулей/модулей. Нет кодирования в основных файлах. Не знаете, какая информация нужна, поэтому спросите, нужно ли мне что-то сказать.

Я полностью потерялся после 8 часов боев. Надеюсь, это то, с чем вы можете мне помочь.

ответ

1

Судя по отладке вызова коллекции, вы либо:

а) вопрос с заводом и XML (скорее всего, его config.xml некоторого расширения). В этом случае вам следует отладить метод _getResourceModelFactoryClassName модели core/config.

https://www.gyazo.com/e7c8ebb26326ce2f1a3c7c26b43812ea

ИЛИ

б) следующий класс отсутствует: Mage_Reports_Model_Resource_Product_Index_Compared_Collection

https://www.gyazo.com/9c59119fe4b97889cb81d2e8980b55fa

Вы можете проверить, что в методе getModelInstance модели. Пожалуйста, учтите тот факт, что при отладке через echo/var_dump вы не сможете добиться хороших результатов, так как эти методы обычно называются повсеместно различными моделями.

Я предпочел бы рекомендовать вам начать с проверки наличия следующего класса: Mage_Reports_Model_Resource_Product_Index_Compared_Collection (приложение/код/​​ядро ​​/ Mage/отчеты/модель/ресурсов/продукта/индекса/по сравнению/collection.php).

Далее я проверил бы наличие перезаписываемых моделей в расширении (Mage_Reports) + проверю все недавно установленные расширения/реализованные изменения в файлах config.xml этих модулей.

Надеюсь, это поможет.

+0

Спасибо, сделал работа :) проблема: переопределенный класс. Проблема решена. – karstenm

0

Просто отладить и проверить, что возвращается в этом методе:

1) get_class($this) 

2) get_class($this->getCollection()) 

В вашем случае ошибка означает следующее: нет набор модели ресурсов для текущей модели. Код пытается получить доступ к коллекции, но не может этого сделать, поскольку нет требуемой модели ресурса или имени модели ресурса или класса, соответствующего этому имени.

+0

echo get_class ($ this) = Mage_Reports_Model_Product_Index_Compared. echo get_class ($ this-> getCollection()) = пусто. Так же сделал var_dump: bool (false). Что делать дальше? – karstenm

Смежные вопросы