phpMyAdmin
 sql >> Datenbank >  >> Database Tools >> phpMyAdmin

Schwerwiegender Fehler:Aufruf der undefinierten Methode Action::execute() /home/public_html/system/engine/event.php in Zeile 62

Es scheint, dass Sie eine OC-Version 3.0.2.x oder höher haben.

In Ihren $this->data der Ereignisklasse haben Sie ein Ereignis registriert, dem ein Aktionsparameter fehlt.

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

Alle Ereignisse werden über register() registriert Methode, die explizit anfordert, dass ein Action-Objekt als Parameter übergeben wird.

Da der Fehler auf "Call to undefined method Action::execute()" zeigt, kann ich davon ausgehen, dass Sie ein Problem mit der Aktionsklasse haben.

Höchstwahrscheinlich müssen Sie die Modifikationen der system/engine/action.php überprüfen Datei in Ihrem system/storage/modifications .

Es könnte sein, dass die Methode execute() fehlt oder ist irgendwie beschädigt.

Debuggen

versuchen Sie, $value zu var_dumpen, um zu sehen, was dort steht:

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

Hoffe das hilft