获取实体内的用户对象

时间:2014-02-06 13:28:55

标签: php symfony fosuserbundle pugxmultiuserbundle

我正在尝试在实体中获取用户对象。我正在使用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 个答案:

答案 0 :(得分:0)

@OP编辑后的更新...

您无法从实体访问容器(因此也是userManager)。实体不应该访问容器本身。


您在变量名称前缺少$

但这不是全部,控制器内的解决方案:

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

但是,在控制器内部,您应该能够通过执行以下操作来获取用户:

$this->getUser();