0

我正在尝试在 Doctrine 中设置一个事件触发器,以便我可以访问完成 atm 的 querybuilder。

我在我的模块中设置了监听器:

$doctrineEventManager = $e->getApplication()->getServiceManager()->get('doctrine.eventmanager.default_orm');

$doctrineEventManager->addEventListener('example', function($eventArgs) {
                die("event");
     });

在我的存储库中:

$this->getEntityManager()->getEventManager()->dispatchEvent('example', $query);

但似乎我做错了什么或错过了什么,因为它不起作用..

我找不到实现这个简单例程的方法..

谢谢。

4

1 回答 1

0

您必须使用所需的事件函数定义一个类,以便自动调用。

$doctrineEventManager->addEventListener('example', new ExampleEvent());

然后,创建 ExampleEvent 类并添加“示例”函数:

<?php
class ExampleEvent {
        public function example($eventArgs) {
                // do whatever you want..
        }
}

之后,您只需要在您的存储库中触发事件:

$this->getEntityManager()->getEventManager()->dispatchEvent('example', $eventArgs);

我没有尝试,但简而言之,它会是这样的。

于 2013-06-04T15:10:50.383 回答