2016-11-05 7 views
1

EasyAdminBundle использует пользовательский манипулятор FOSUserBundle для создания пользователей &. Я хочу захватить пароль, используемый при создании пользователя для обновления базы данных postfix. Когда пользователь создается, профилировщик dev не показывает, что прослушивалось какое-либо событие 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) 
    { 
     ... 
    } 

Однако это дало мне это Catch 22:

must be an instance of JavierEguiluz\Bundle\EasyAdminBundle\Event\EasyAdminEvents, instance of Symfony\Component\EventDispatcher\GenericEvent given"

ответ

0

Так самый простой ответ должен был изменить тип намек на:

public function onPostInitialize(GenericEvent $event) 
    { 
     ... 
    }