如何正确获取ID?

时间:2011-07-02 12:44:51

标签: symfony1 doctrine sfdoctrineguard

我使用Symfony 1.4,Doctrine 1.2和sfDoctrineGuardPlugin。在actions.class.php中我有:

$this->idsfguard = $this->getUser()->getGuardUser()->getId();

如果我登录这项工作很好,但如果我退出,那么我有错误:

  

致命错误:调用成员函数   

中的非对象上的getId()

我试过了:

  if ($this->getUser()->getGuardUser()->isAuthenticated()){
    $this->idsfguard = $this->getUser()->getGuardUser()->getId();
  }

但我有错误:

  

致命错误:调用成员函数   在

中的非对象上使用isAuthenticated()

1 个答案:

答案 0 :(得分:3)

if ($this->getUser()->isAuthenticated()) {
  $id = $this->getUser()->getGuardUser()->getId();
}

isAuthenticated()方法适用于sfUser类,而不是sfGuardUser。如果用户通过身份验证,您只能通过sfUser访问sfGuardUser类。