Symfony2 получает идентификатор пользователя на слушателе событий kernel.controller

Может кто-нибудь помочь мне получить идентификатор пользователя в слушателе событий из event.controller?

#   EventListener
    kernel.listener.corporation.manage:
        class:  Site\CorporationBundle\Event\SiteCorporationManageListener
        arguments: ["@doctrine.orm.entity_manager", "@user.own.item", "@security.context"]
        tags:
            - { name: kernel.event_listener, event: kernel.controller, method: onKernelRequest }

И класс слушателя

use Doctrine\ORM\EntityManager;
use Site\MainBundle\Service\UserOwnItem;
use Symfony\Component\HttpKernel\Event\FilterControllerEvent;
use Symfony\Component\HttpKernel\HttpKernelInterface;
use Symfony\Component\Security\Core\SecurityContext;

class SiteCorporationManageListener
{
    private $oEntityManager = null;
    private $oUserOwnItem = null;
    private $oSecurityContext = null;

    public function __construct(EntityManager $oEntityManager, UserOwnItem $oUserOwnItem, SecurityContext $oSecurityContext)
    {
        $this->oEntityManager = $oEntityManager;
        $this->oUserOwnItem = $oUserOwnItem;
        $this->oSecurityContext = $oSecurityContext;
    }

    public function onKernelRequest(FilterControllerEvent $event)
    {
        if (HttpKernelInterface::MASTER_REQUEST === $event->getRequestType()) {
            $route = $event->getRequest()->get('_route');
            $corporationID = $event->getRequest()->get('corporationID', null);
            $userID = $this->oSecurityContext->getToken()->getUser()->getID();
            //$userID = 3;
            //var_dump($userID);

            if (strstr($route, 'corporation')) {
                if (!strstr($route, 'corporation_index')) {
                    $bUserOwn = $this->oUserOwnItem->setUserID($userID)->setItemType('corporation')->setItemID($corporationID)->userOwn();
                    //var_dump($bUserOwn);
                }
            }
        }
    }
}

Я уберу это позже, я пробую разные способы сделать это, но даже через контейнер и security_context я не могу получить userID. Он ломается после метода getToken () =.

В этом примере $ userID имеет значение null ... Даже после getToken () -> getUser () я получаю значение null ...

FatalErrorException: Error: Call to a member function getUser() on a non-object in /home/dev/public_html/git.eve-ceo/src/Site/CorporationBundle/Event/SiteCorporationManageListener.php line 32

Помогите, пожалуйста.

Ответы на вопрос(5)

Ваш ответ на вопрос