ऐसा लगता है कि आपके पास OC संस्करण 3.0.2.x या इसके बाद का संस्करण है।
आपके $this->data
. में इवेंट क्लास में, आपके पास एक ऐसा इवेंट पंजीकृत है जिसमें एक क्रिया पैरामीटर गुम है।
$this->data[] = array(
'trigger' => $trigger,
'action' => $action, // <-- this must be an Action Object with a method execute()
'priority' => $priority
);
सभी इवेंट register()
. के ज़रिए रजिस्टर किए जाते हैं विधि जो स्पष्ट रूप से अनुरोध करती है कि एक क्रिया वस्तु को एक पैरामीटर के रूप में पारित किया जा रहा है।
चूंकि त्रुटि "अपरिभाषित विधि पर कॉल करें क्रिया ::निष्पादित ()" को इंगित कर रही है, मैं मान सकता हूं, आपको एक्शन क्लास के साथ कोई समस्या है।
सबसे अधिक संभावना है कि आपको system/engine/action.php
. के संशोधनों की जांच करने की आवश्यकता है अपने system/storage/modifications
. में फाइल करें ।
यह हो सकता है कि विधि execute()
या तो गायब है या किसी तरह भ्रष्ट है।
डीबग
क्या है यह देखने के लिए $value को var_dump करने का प्रयास करें:
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;
}
}
}
}
आशा है कि यह मदद करता है