2016-03-02 4 views
0

Я стараюсь держать его коротким. Я активировал функциональность SwitchUser Symfony 2.8 и подключался к рабочему SwitchUserListener как услуге, согласно Поваренной книге Symfony. Теперь, когда я пытаюсь получить доступ к пользователю, как эти данные в случае, как это:Событие переключения олицетворения Symfony

class SwitchUserListener 
{ 
    private $em; 

    public function __construct(EntityManager $em_item) 
    { 
     $this->em = $em_item; 
    } 

    public function onSwitchUser(SwitchUserEvent $event) 
    { 
     $log_content = "switching user: " + $event->getRequest->getUser()->getUsername(); 
     $log = new Log(); 
     $log->setLogContent($log_content); 
     $this->em->persist($log); 
     $this->em->flush(); 
    } 
} 

я получаю исключение, что я не могу назвать getUsername на неопределенное, из которого я делаю вывод, что GetUser не возвращает ничего. Кто-нибудь знает, почему это так? Я хочу записать что-то в базу данных, которая сообщает мне, когда кто-то олицетворяет другого пользователя, который пользователь олицетворяет другого пользователя. Возможно ли это? Заранее спасибо!

ответ

1

Я думаю, что вы просто забыли скобку в этой строке:

$log_content = "switching user: " + $event->getRequest->getUser()->getUsername(); 

Попробуйте вместо этого:

$log_content = "switching user: " + $event->getRequest()->getUser()->getUsername(); 

Если то, что вы хотите, чтобы войти пользователю вы бы переключение на, возможно, вы должны использовать метод getTargetUser:

$log_content = "switching user: " + $event->getTargetUser()->getUsername(); 
+0

, похоже, ничего не меняет. видимо '$ event-> getRequest() -> getUser()' просто ничего не возвращает ... – calcyss

+0

отредактировал ответ – hasumedic

+0

Ну, я хочу, чтобы оба :) уже определили целевого пользователя, но мне нужно каким-то образом получить * who * пытается олицетворять этого пользователя. – calcyss

Смежные вопросы