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;
}
4

1 回答 1

0

@OP 编辑​​后更新...

您不能从实体访问容器(因此是 userManager)。实体不应访问容器本身。


$在变量名称之前丢失了。

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

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

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

$this->getUser();
于 2014-02-06T13:35:50.813 回答