[英]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.