我试图听完" afterSave"使用EventManager
进行回调,如下所示:
use Cake\Event\EventManager;
EventManager::instance()->on(
'Model.afterSave', function ($event) {
// do something
}
);
问题:在本地工作,我可以做某事"保存模型时,但在服务器上它不起作用。
我发现在本地EventManager
上有听众关联。如你所见:
use Cake\Event\EventManager;
debug(EventManager::instance());
object(Cake\Event\EventManager) {
'_listeners' => [
'Controller.shutdown' => '3 listener(s)',
'Controller.initialize' => '2 listener(s)',
'Controller.startup' => '2 listener(s)',
'Controller.beforeRender' => '2 listener(s)',
'View.beforeRender' => '2 listener(s)',
'View.afterRender' => '2 listener(s)',
'View.beforeLayout' => '2 listener(s)',
'View.afterLayout' => '2 listener(s)',
'View.beforeRenderFile' => '1 listener(s)',
'View.afterRenderFile' => '1 listener(s)',
'Model.afterSave' => '1 listener(s)'
],
'_isGlobal' => true,
'_generalManager' => '(object) EventManager'
}
但是在服务器EventManager
上没有听众:
use Cake\Event\EventManager;
debug(EventManager::instance());
object(Cake\Event\EventManager) {
'_listeners' => [],
'_isGlobal' => true,
'_generalManager' => '(object) EventManager'
}
为什么不在服务器上工作?它是否与服务器配置有关?
非常感谢!