致命错误:在第 62 行调用未定义的方法 Action::execute()/home/public_html/syst

2023-10-11php开发问题
0

本文介绍了致命错误:在第 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/modificationssystem/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的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持跟版网!

The End

相关推荐

PHP实现DeepL翻译API调用
DeepL的翻译效果还是很强大的,如果我们要用php实现DeepL翻译调用,该怎么办呢?以下是代码示例,希望能够帮到需要的朋友。 在这里需要注意,这个DeepL的账户和api申请比较难,不支持中国大陆申请,需要拥有香港或者海外信用卡才行,没账号的话,目前某宝可以...
2025-08-20 php开发问题
168

PHP通过phpspreadsheet导入Excel日期数据处理方法
PHP通过phpspreadsheet导入Excel日期,导入系统后,全部变为了4开头的几位数字,这是为什么呢?原因很简单,将Excel的时间设置问文本,我们就能看到该日期本来的数值,上图对应的数值为: 要怎么解决呢?进行数据转换就行,这里可以封装方法,或者用第三方的...
2024-10-23 php开发问题
287

mediatemple - 无法使用 codeigniter 发送电子邮件
mediatemple - can#39;t send email using codeigniter(mediatemple - 无法使用 codeigniter 发送电子邮件)...
2024-08-23 php开发问题
11

Laravel Gmail 配置错误
Laravel Gmail Configuration Error(Laravel Gmail 配置错误)...
2024-08-23 php开发问题
16

将 PHPMailer 用于 SMTP 的问题
Problem with using PHPMailer for SMTP(将 PHPMailer 用于 SMTP 的问题)...
2024-08-23 php开发问题
4

关于如何在 GoDaddy 服务器中使用 PHPMailer 设置 SMTP 的问题
Issue on how to setup SMTP using PHPMailer in GoDaddy server(关于如何在 GoDaddy 服务器中使用 PHPMailer 设置 SMTP 的问题)...
2024-08-23 php开发问题
17