我对这个问题很挠头,所以也许有人可以帮助我。我以前这样做过,没有任何问题,但我是Symfony的新手,所以这次我可能会错过一些东西。
我正在尝试加载一个事件侦听器,以便在保存实体时触发一些代码。
在我的app/config/config中。我把这个。
services:
fu_bar.listener:
class: FuBarBundleEventListenerAuthCheckListener
tags:
- { name: doctrine.event_listener, event: postPersist, connection: default }
- { name: doctrine.event_listener, event: preUpdate, connection: default }
在我的FuBarBundleEventListenerAuthCheckListener中,我这样做是为了看到我击中了这些方法,而我没有。
<?php
namespace FuBarBundleEventListener;
use DoctrineORMEventLifecycleEventArgs;
class AuthCheckListener {
public function preUpdate(LifecycleEventArgs $args) {
file_put_contents('/tmp/yyy', 'ffdf');
}
public function postPersist(LifecycleEventArgs $args) {
file_put_contents('/tmp/xxx', 'fff');
//$this->syncAuth($args);
}
}
当我保存一个实体时,我希望在/tmp中看到一些文件,但我没有。似乎没有注册事件侦听器。
我在这里错过了什么?
doctrine:event_listener
应为doctrine.event_listener
- 使用点符号表示服务和参数
- 使用冒号符号用于控制器、视图和这些类型的"对象"