sql >> Base de Datos >  >> Database Tools >> phpMyAdmin

Error fatal:llamada al método no definido Acción::ejecutar() /home/public_html/system/engine/event.php en la línea 62

Parece que tiene una versión de OC 3.0.2.x o superior.

En tu $this->data de la clase de evento, tiene un evento registrado al que le falta un parámetro de acción.

$this->data[] = array(
    'trigger'  => $trigger,
    'action'   => $action, // <-- this must be an Action Object with a method execute()
    'priority' => $priority
);

Todos los eventos se registran a través de register() método que solicita explícitamente que se pase un objeto de acción como parámetro.

Dado que el error apunta a "Llamar a un método indefinido Acción::ejecutar()", puedo suponer que tiene un problema con la clase de acción.

Lo más probable es que necesite verificar las Modificaciones del system/engine/action.php archivo en su system/storage/modifications .

Podría ser que el método execute() falta o está dañado de algún modo.

Depuración

intente var_dump el $valor para ver qué hay:

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;
            }
        }
    }
}

Espero que esto ayude