sql >> Database teknologi >  >> Database Tools >> phpMyAdmin

Fatal fejl:Kald til udefineret metode Action::execute() /home/public_html/system/engine/event.php på linje 62

Det ser ud til, at du har en OC-version 3.0.2.x eller nyere.

I dine $this->data af hændelsesklassen, har du en hændelse registreret, der mangler en handlingsparameter.

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

Alle begivenheder registreres via register() metode, som eksplicit anmoder om, at et handlingsobjekt sendes som en parameter.

Da fejlen peger på "Call to undefined method Action::execute()", kan jeg antage, at du har et problem med actionklassen.

Mest sandsynligt skal du tjekke Ændringerne af system/engine/action.php fil i dit system/storage/modifications .

Det kan være, at metoden execute() enten mangler eller på en eller anden måde er korrupt.

Fejlretning

prøv at var_dumpe $værdien for at se, hvad der er der:

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

Håber dette hjælper




  1. mySQL-forespørgsel for at søge efter en streng i alle tabeller i en database?

  2. Sådan skjuler du informationsskemadatabase fra phpmyadmin

  3. Hvordan kan jeg løse tabellen 'dbo.Foo' eksisterer allerede. fejl, når tabellen ikke eksisterer?

  4. Det mest interessante fra DBeaver 6.3