首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 網頁程式設計 >> PHP 程式設計 >> PHP 相關知識

修復 Magento 1.5.1 導入產品報錯:Call to undefined method getExceptions()

     編輯:PHP 相關知識

Magento 1.5.1 在數據流導入產品時拋出 Fatal error: Call to undefined method Mage_Adminhtml_Block_Abstract::getExceptions(),導致導入流程中斷。本文提供經驗證的熱修復方案,並說明根因與升級建議。

錯誤堆疊

Fatal error: Call to undefined method Mage_Adminhtml_Block_Abstract::getExceptions()
in app/code/core/Mage/Adminhtml/Block/System/Convert/Profile/Run.php on line 167

根因分析

Mage_Adminhtml_Block_System_Convert_Profile_Run 繼承自 Mage_Adminhtml_Block_Abstract,但父類**未定義** getExceptions()/setExceptions() 方法。這是 Magento 1.5.1 核心代碼的已知缺陷,官方在後續版本(1.5.1.1+)已修復。

熱修復步驟(生產環境慎用,建議備份)

  1. 編輯文件:app/code/core/Mage/Adminhtml/Block/System/Convert/Profile/Run.php
  2. 註釋第 167-168 行:
// if (!is_null(parent::getExceptions()))
//     return parent::getExceptions();
  1. 註釋第 197 行:
// parent::setExceptions($exceptions);
  1. 保存文件,清理緩存(rm -rf var/cache/*),重新執行導入。

注意事項

  • 核心文件修改風險: 直接修改 app/code/core/ 會導致升級覆蓋失效。最佳實踐:將文件複製到 app/code/local/Mage/Adminhtml/Block/System/Convert/Profile/Run.php 並修改,利用 Magento 編譯器優先級覆蓋。
  • 功能影響: 註釋後將失去導入過程中異常收集/展示能力,但不影響導入主流程。
  • 永久修復: 升級至 Magento 1.9.x 或遷移至 Magento 2(官方已停止 1.x 安全更新)。

驗證修復

進入後台 System → Import/Export → Dataflow - Profiles,運行導入 Profile,觀察無 Fatal Error 且導入記錄正常生成即成功。

此問題典型反映了 Magento 1.x 早期版本核心代碼質量參差不齊,建議長期項目制定升級路線圖,避免在 EOL 版本上持續修補。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved