1

升级后出现此错误。有谁能够帮我。

致命错误:未捕获的异常“异常”,带有消息“错误:无法加载模型总数!” 在 C:\xampp\htdocs\deleteme\system\engine\loader.php:169 堆栈跟踪:#0 [内部函数]:Loader->{closure}(Array, Array) #1 C:\xampp\htdocs\deleteme \system\engine\proxy.php(25): call_user_func_array(Object(Closure), Array) #2 C:\xampp\htdocs\deleteme\catalog\controller\common\cart.php(37): Proxy->__call( 'getTotal', Array) #3 C:\xampp\htdocs\deleteme\catalog\controller\common\cart.php(37): Proxy->getTotal(Array) #4 [内部函数]: 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) :动作->执行(对象(注册表),数组)#7 C:

4

1 回答 1

3

升级问题是在他们的论坛中报告的错误和解决方案,这里

摘要(为后代复制/粘贴):

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 版本。避风港' t 弄清楚为什么函数调用会沿着事件路径前进。但基本上支持向后兼容 2.2 模组的尝试会导致问题。

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

修复 2:当“getTotal”、“getMethod”或“getQuote”函数调用传入时,添加一个 hack 以绕过事件。这是实验性的,但至少现在应该恢复对 2.2.x 模块的支持。这不是永久修复。只是一个解决方法。编辑:目录/控制器/事件/compatibility.php 查找:

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

用。。。来代替:

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

这应该让“extension/total/sub_total”之类的路由正常工作,但会阻止在目录检查中失败的“extension/total/sub_total/getTotal”调用。

于 2016-11-10T09:47:23.963 回答