从用户名FosuserBundle Symfony获取实体

时间:2014-08-08 10:35:29

标签: symfony fosuserbundle

我有从Fos \ UserBundle \ Model \ User扩展的实体Collab,我想从我登录的用户名获取实体。  我的控制员:

      echo $this->getUser();
    $collab->get('collab.collaborateurservice')->findCollaborateurByUserName($this->getUser());
    echo $this->getEmailCollaborateur();

在我的经理中我定义了i方法:

   public function findCollaborateurByUserName ($username){
    return $this->getRepository()->findOneBy(array('username'=>$username));
}

我得到了这个例外:

FatalErrorException: Error: Call to a member function get() on a non-object in 

如何获得这个实体?

2 个答案:

答案 0 :(得分:0)

什么是$collab?您尝试在未正确初始化的变量(非对象)上调用get方法时出现致命错误。

答案 1 :(得分:0)

你的问题是这样的:

return $this->getRepository()->findOneBy(array('username'=>$username));
$collab->get('collab.collaborateurservice')->findCollaborateurByUserName($this->getUser());

应该是:

return $this->getDoctrine()->getRepository('YourBundleNamespace:Collab')->findOneBy(array('username'=>$username));
$collab = $this->get('collab.collaborateurservice')->findCollaborateurByUserName($this->getUser()->getUsername());