2017-10-17 124 views
1

磁1.9.3移動到新的服務器有PHP版本7.0.23遺漏的類型錯誤:傳遞給Mage_Core_Model_Store_Group :: setWebsite(參數1)必須是Mage_Core_Model_Website的一個實例,空給出

我更新了我的Magento網站服務器到新的PHP版本,它現在7.0.23,在此之前,其工作正常,但現在給人的問題

致命錯誤:未捕獲的類型錯誤:傳遞給Mage_Core_Model_Store_Group參數1 :: setWebsite()必須Mage_Core_Model_Website的實例,給空,叫做

enter image description here

我試過inchoo patch for php 7也沒什麼效果。 https://github.com/Inchoo/Inchoo_PHP7

+1

特別是該行返回'公共職能setWebsite(Mage_Core_Model_Website $網站)' - 接受'在PHP 7 null'將不得不宣佈'$ website'爲空(如'setWebsite(Mage_Core_Model_Website $ website = null)'.Inchoo補丁是否正確安裝?Magento 1.9x實際上並不是PHP7兼容的。 – CD001

+0

是正確安裝的補丁@ CD001 –

+0

@ CD001您的參考幫助了很多謝謝.. –

回答

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]}(); 

,一切工作正常...

+0

我建議你在本地覆蓋/模塊中更新app/code/core/Mage/Core/Model/Store/Group.php當你更新你的Magento時,這個改變可能會丟失。 –

0

它看起來就像當前版本的Inchoo_PHP7一樣與最新版本的Magento。閱讀他們的版本說明https://github.com/Inchoo/Inchoo_PHP7/releases

我的早期版本的Inchoo_PHP7包含上述文件的所有修復程序。像這樣的......

<core> 
    <rewrite> 
     <layout>Inchoo_PHP7_Model_Layout</layout> 
    </rewrite> 
</core> 
相關問題