Получить объект пользователя внутри объекта
Я пытаюсь получить объект пользователя внутри объекта. Я использую FosUserBundle и PugxMultiUserBundle, и я попробовал следующую команду:
container->get('fos_user.user_manager')->getToken()->getUser();
но я получаю:
Undefined property $container
Как я могу это исправить?
Спасибо за помощь.
Функция, которая не работает, находится внутри сущности, и это следующее:
protected function getUploadDir()
{
$userManager = $this->container->get('security.context');
$user = $userManager->findUserByUsername($this->container->get('security.context')
->getToken()
->getUser());
return 'uploads/'.$user;
}
1 ответ
Решение
ОБНОВЛЕНИЕ после @OP отредактировано...
Вы не можете получить доступ к контейнеру (следовательно, userManager) из сущности. Сущность не должна обращаться к самому контейнеру.
Вам не хватает $
перед именем вашей переменной.
Но это еще не все, решение внутри контроллера:
$userManager = $this->container->get('fos_user.user_manager');
$user = $userManager->findUserByUsername($this->container->get('security.context')
->getToken()
->getUser())
Но внутри контроллера вы сможете получить пользователя, выполнив следующие действия:
$this->getUser();