Php 获取实体内的用户对象
我正在尝试获取实体中的用户对象。我正在使用FosUserBundle和PugxMultiUserBundle,并尝试了以下命令: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() {
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()中使用它。