Uncaught TypeError: Аргумент 1, переданный в Mage_Core_Model_Store_Group :: setWebsite (), должен быть экземпляром Mage_Core_Model_Website, с нулевым значением

Magneto 1.9.3 переехал на новый сервер с версией php 7.0.23

Я обновил свой сервер веб-сайта magento до новой версии php 7.0.23, до этого он работал нормально, но теперь дает проблему

Неустранимая ошибка: Uncaught TypeError: Аргумент 1, переданный в Mage_Core_Model_Store_Group :: setWebsite (), должен быть экземпляром Mage_Core_Model_Website, с нулевым значением, вызванным в

введите описание изображения здесь

Я попробовал патч inchoo для php 7, но ничего не работает.
https://github.com/Inchoo/Inchoo_PHP7

1

Решение

Я попробовал вышеупомянутый метод, упомянутый @ CD001

Сначала я обновил файл app/code/core/Mage/Core/Model/Store/Group.php
В том, что я только что заменил ниже линии

public function setWebsite(Mage_Core_Model_Website $website)

с

public function setWebsite(Mage_Core_Model_Website $website = null)

Тогда я получил еще одну ошибку

Fatal error: Uncaught Error: Function name must be a string in
app\code\core\Mage\Core\Model\Layout.php:555 Stack trace: #0
app\code\core\Mage\Core\Controller\Varien\Action.php(390): Mage_Core_Model_Layout->getOutput() #1
app\code\core\Mage\Cms\Helper\Page.php(137): Mage_Core_Controller_Varien_Action->renderLayout() #2
app\code\core\Mage\Cms\Helper\Page.php(52): Mage_Cms_Helper_Page->_renderPage(Object(Mage_Cms_IndexController), 'home') #3
app\code\core\Mage\Cms\controllers\IndexController.php(45): Mage_Cms_Helper_Page->renderPage(Object(Mage_Cms_IndexController), 'home') #4
app\code\core\Mage\Core\Controller\Varien\Action.php(418): Mage_Cms_IndexController->indexAction() #5
app\code\core\Mage\Core\Controller\Varien\Router\Standard.php(254): Mage_Core_Controller_Varien_Action->dispatch('index') #6
app\code\core\Mage\Core\Model\Layout.php on line 555

Для этого я обновил файл app/code/core/Mage/Core/Model/Layout.php

В этом я заменил ниже линии

$out .= $this->getBlock($callback[0])->$callback[1]();

с

$out .= $this->getBlock($callback[0])->{$callback[1]}();

и все работает нормально …

1

Другие решения

Похоже, что текущая версия Inchoo_PHP7 работает только с самой последней версией Magento. Прочитайте их примечания к выпуску https://github.com/Inchoo/Inchoo_PHP7/releases

Моя старая версия Inchoo_PHP7 содержит все исправления для файлов, которые вы упомянули выше. как этот…

<core>
<rewrite>
<layout>Inchoo_PHP7_Model_Layout</layout>
</rewrite>
</core>
0

По вопросам рекламы [email protected]