Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/symfony/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 获取实体内的用户对象_Php_Symfony_Fosuserbundle_Pugxmultiuserbundle - Fatal编程技术网

Php 获取实体内的用户对象

Php 获取实体内的用户对象,php,symfony,fosuserbundle,pugxmultiuserbundle,Php,Symfony,Fosuserbundle,Pugxmultiuserbundle,我正在尝试获取实体中的用户对象。我正在使用FosUserBundle和PugxMultiUserBundle,并尝试了以下命令: container->get('fos_user.user_manager')->getToken()->getUser(); 但我得到: Undefined property $container 我怎样才能修好它 谢谢你的帮助 不起作用的函数位于实体内部,如下所示: protected function getUploadDir() {

我正在尝试获取实体中的用户对象。我正在使用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;
}

@OP编辑后更新

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


变量名称前缺少
$

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

$userManager = $this->container->get('fos_user.user_manager');
$user = $userManager->findUserByUsername($this->container->get('security.context')
                    ->getToken()
                    ->getUser())
但是,在控制器内部,您应该能够通过执行以下操作获得用户:

$this->getUser();

在Begging处添加一个$符号。我尝试了,得到的“Undefined variable:container”实体没有访问该容器的权限。您需要将用户对象传递给实体。除非他试图将其放入实体中。@Brice好的,谢谢,很抱歉造成混淆。因此,如果我真的需要在我的控制器中包含这些信息,我应该做一个arrayCorrelation,不是吗?具有受保护函数getUploadDir()的实体是什么?@Brice它是一个打算上载文件的实体。它非常类似于中的一个,然后我认为您应该将
OneToMany
关系从
User
添加到
Document
,以便从
Document
中检索拥有
文档的
用户。或者,如果它不是您想要的模式类型,那么您应该将
路径设置为
文档
,并在
getUploadDir()中使用它。