Fatal error: Call to undefined method Action::execute() /home/public_html/system/engine/event.php on line 62(致命错误:在第 62 行调用未定义的方法 Action::execute()/home/public_html/system/engine/event.php)
问题描述
尝试刷新 opencart 中的修改缓存缓存,从那以后我在前端收到一个空白页面,并显示此错误消息.
Hi tried refreshing the modification cache cache in opencart and since then i am getting a blank page in front end with this error message.
public function trigger($event, array $args = array()) {
foreach ($this->data as $value) {
if (preg_match('/^' . str_replace(array('*', '?'), array('.*', '.'), preg_quote($value['trigger'], '/')) . '/', $event)) {
$result = $value['action']->execute($this->registry, $args);
if (!is_null($result) && !($result instanceof Exception)) {
return $result;
}
}
}
}
谢谢,
推荐答案
您的 OC 版本似乎是 3.0.2.x 或更高版本.
It seems your have an OC version 3.0.2.x or above.
在事件类的 $this->data 中,您注册了一个缺少操作参数的事件.
In your $this->data of the Event Class, you have an event registered that is missing an action parameter.
$this->data[] = array(
'trigger' => $trigger,
'action' => $action, // <-- this must be an Action Object with a method execute()
'priority' => $priority
);
所有事件都通过 register() 方法注册,该方法明确请求将 Action 对象作为参数传递.
All events are registered via the register() method which explicitly requests that an Action object is being passed as a parameter.
由于错误指向调用未定义的方法 Action::execute()",我可以假设,您的操作类有问题.
Since the error is pointing to "Call to undefined method Action::execute()", I can assume, you have an issue with the action class.
您很可能需要检查 system/storage/modifications 中 system/engine/action.php 文件的修改.
Most likely you need to check the Modifications of the system/engine/action.php file in your system/storage/modifications.
可能是方法 execute() 丢失或以某种方式损坏.
It could be that the method execute() is either missing or somehow corrupt.
尝试对 $value 进行 var_dump 以查看其中的内容:
try to var_dump the $value to see what is there:
public function trigger($event, array $args = array()) {
foreach ($this->data as $value) {
//log out the $value before the error to see if the Action object is actually there and see what trigger causes this.
var_dump($value);
if (preg_match('/^' . str_replace(array('*', '?'), array('.*', '.'), preg_quote($value['trigger'], '/')) . '/', $event)) {
$result = $value['action']->execute($this->registry, $args);
if (!is_null($result) && !($result instanceof Exception)) {
return $result;
}
}
}
}
希望能帮到你
这篇关于致命错误:在第 62 行调用未定义的方法 Action::execute()/home/public_html/system/engine/event.php的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:致命错误:在第 62 行调用未定义的方法 Action::execute()/home/public_html/system/engine/event.php
基础教程推荐
- YouTube API v3 点赞视频,但计数器不增加 2022-01-01
- 如何在 Laravel 5.3 注册中添加动态下拉列表列? 2021-01-01
- PHP 类:全局变量作为类中的属性 2021-01-01
- 如何替换eregi() 2022-01-01
- 在PHP中根据W3C规范Unicode 2022-01-01
- 学说 dbal querybuilder 作为准备好的语句 2022-01-01
- 有什么方法可以用编码 UTF-8 而不是 Unicode 返回 PHP`json_encode`? 2021-01-01
- PHP PDO MySQL 查询 LIKE ->多个关键词 2021-01-01
- Cron Jobs 调用带有变量的 PHP 脚本 2022-01-01
- 如何在 Laravel 中使用 React Router? 2022-01-01
