EasyAdminBundle使用FOSUserBundle用户操纵器来创建&管理用户。我想捕获创建用户时用于更新后缀数据库的密码。创建用户时,开发人员分析器不显示任何FOSUserBundle事件已被侦听。唯一的EasyAdminBundle事件是easy_admin.post_initialize
。该EasyAdminEvents
类显示EasyAdminBundle事件POST_INITIALIZE是未定义的类常量
/** @Event("Symfony\Component\EventDispatcher\GenericEvent") */
const POST_INITIALIZE = 'easy_admin.post_initialize';
但是一个事件监听:
use Symfony\Component\EventDispatcher\GenericEvent;
...
public static function getSubscribedEvents()
{
return array(
GenericEvent::POST_INITIALIZE => 'onPostInitialize',
);
}
抛出:
Fatal error: Uncaught Symfony\Component\Debug\Exception\FatalThrowableError: Undefined class constant 'POST_INITIALIZE' ...
我认为答案是使用JavierEguiluz\Bundle\EasyAdminBundle\Event\EasyAdminEvents
事件,而不是一个Symfony的GenericEvent
。作为
use JavierEguiluz\Bundle\EasyAdminBundle\Event\EasyAdminEvents;
...
public static function getSubscribedEvents()
{
return array(
EasyAdminEvents::POST_INITIALIZE => 'onPostInitialize',
);
}
...
//error occurs on the following line:
public function onPostInitialize(EasyAdminEvents $event)
{
...
}
但是,这样做给了我这个左右为难:
must be an instance of JavierEguiluz\Bundle\EasyAdminBundle\Event\EasyAdminEvents, instance of Symfony\Component\EventDispatcher\GenericEvent given"