2014-02-06 5 views
2

Я пытаюсь получить объект пользователя внутри объекта. Я использую 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; 
} 
+0

Добавить знак $ в в начале. – Shocked

+0

@Shocked Я попытался, и я получаю «Неопределенная переменная: container» – user3279754

+0

У объектов нет доступа к контейнеру. Вам нужно будет передать объект пользователя объекту. – Cerad

ответ

0

UPDATE после @OP редактируемого ...

Вы не можете получить доступ к контейнеру (отсюда userManager) от объекта. Объект не должен иметь доступ к самому контейнеру.


У вас не хватает $ перед именем переменной.

Но это еще не все, решение внутри контроллера:

$userManager = $this->container->get('fos_user.user_manager'); 
$user = $userManager->findUserByUsername($this->container->get('security.context') 
        ->getToken() 
        ->getUser()) 

Но, внутри контроллера, ваш должен быть в состоянии получить пользователь, выполнив следующие действия:

$this->getUser(); 
+0

За исключением того, что он пытается получить его внутри сущности. – Cerad

+0

Он только что обновил свой титул ............ Я обновлю свое ... – Brice

+0

@ Брат ок, спасибо, извините за путаницу. Итак, если мне действительно нужно иметь эту информацию внутри моего контроллера, я должен сделать arrayCorrelation, не так ли? – user3279754

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