phpMyAdmin
 sql >> Base de données >  >> Database Tools >> phpMyAdmin

Erreur fatale :appel à la méthode non définie Action ::execute() /home/public_html/system/engine/event.php à la ligne 62

Il semble que vous ayez une version OC 3.0.2.x ou supérieure.

Dans vos $this->data de la classe d'événements, vous avez enregistré un événement auquel il manque un paramètre d'action.

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

Tous les événements sont enregistrés via le register() méthode qui demande explicitement qu'un objet Action soit passé en paramètre.

Étant donné que l'erreur pointe vers "Call to undefined method Action::execute()", je peux supposer que vous avez un problème avec la classe d'action.

Vous devrez probablement vérifier les modifications du system/engine/action.php fichier dans votre system/storage/modifications .

Il se peut que la méthode execute() est manquant ou corrompu d'une manière ou d'une autre.

Débogage

essayez de var_dump la $value pour voir ce qu'il y a :

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

J'espère que cela vous aidera