簡體   English   中英

opencart 2.0.3.1到2.3.0.2錯誤

[英]opencart 2.0.3.1 to 2.3.0.2 error

升級后我得到了這個錯誤。 有誰能夠幫助我。

致命錯誤:未捕獲異常'異常',消息'錯誤:無法加載模型總計!' 在C:\\ xampp \\ htdocs \\ deleteme \\ system \\ engine \\ loader.php:169堆棧跟蹤:#0 [內部函數]:加載器 - > {closure}(數組,數組)#1 C:\\ xampp \\ htdocs \\ _deleme \\ system \\ engine \\ proxy.php(25):call_user_func_array(Object(Closure),Array)#2 C:\\ xampp \\ htdocs \\ deleteme \\ catalog \\ controller \\ common \\ cart.php(37):代理 - > __調用( 'getTotal',Array)#3 C:\\ xampp \\ htdocs \\ deleteme \\ catalog \\ controller \\ common \\ cart.php(37):Proxy-> getTotal(Array)#4 [internal function]:ControllerCommonCart-> index(Array )#5 C:\\ xampp \\ htdocs \\ deleteme \\ system \\ engine \\ action.php(51):call_user_func_array(Array,Array)#6 C:\\ xampp \\ htdocs \\ deleteme \\ system \\ engine \\ loader.php(24) :Action-> execute(Object(Registry),Array)#7 C:\\ xampp \\ htdocs \\ deleteme \\ catalog \\ controller \\ common \\ header.php(129):Loader-> controller('common / cart')#8 [內部函數]:ControllerCommonHeader-> index(Array)#9 C:\\ xampp \\ htdocs \\ _ deleteme \\ system \\ engine \\ action.php(51):call_user_func_array(Array,Array)#10 C:\\ xampp \\ in C: \\ xampp \\ htdocs \\ deleteme \\ system \\ engine \\ loader.php on 第169行

升級問題是在論壇中報告的錯誤和解決方案。

摘要(復制/粘貼為posternity):

BUG:錯誤:無法加載模型總數!

兩部分的錯誤。 第一部分:在嘗試加載舊的擴展格式時,事件兼容性會切斷路由的太多部分。 恩。 “extension / total / sub_total / getTotal”路由變為“total / sub_total”而不是“total / sub_total / getTotal”。 這導致它嘗試加載沒有名稱拋出異常的模型。 第二部分,當路由為“extension / total / subtotal”時,此兼容性正在加載,但當路由為“extension / total / sub_total / getTotal”時也會加載。 我認為不應該觸發此事件的兼容性,因為它是一個函數調用getTotal,而不是模型加載。 這會導致驗證失敗並嘗試加載2.2.x版本,其中缺少其他位並引發不同的錯誤。 還沒弄清楚函數調用為什么會沿着事件路徑走下去。 但基本上支持向后兼容2.2 mod的嘗試導致了問題。

2解決方案

FIX 1:放棄2.2.x兼容性並刪除以下剩余文件夾:

     catalog/model/total
     catalog/model/payment
     catalog/controller/payment
     catalog/model/shipping
     catalog/controller/module
     admin/controller/total
     admin/controller/payment
     admin/controller/shipping
     admin/controller/module

FIX 2:當傳入函數調用“getTotal”,“getMethod”或“getQuote”時,添加一個hack來繞過事件。這是實驗性的,但至少應該恢復對2.2.x mod的支持。 這不是永久性修復。 只是一個解決方案。 編輯:目錄/控制器/事件/兼容性.php查找:

'model/' . $route. '.php'

用。。。來代替:

'model/' . ((strpos($route,'get') !== false) ? dirname($route) : $route) . '.php'

這應該讓像“extension / total / sub_total”這樣的路由工作,但阻止“extension / total / sub_total / getTotal”調用,這些調用在目錄檢查時失敗。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM