Symfony1 如何正确获取身份证?

Symfony1 如何正确获取身份证?,symfony1,doctrine,sfdoctrineguard,Symfony1,Doctrine,Sfdoctrineguard,我使用Symfony 1.4、Doctrine 1.2和sfDoctrineGuardPlugin。在actions.class.php中,我有: $this->idsfguard = $this->getUser()->getGuardUser()->getId(); 如果我登录此工作正常,但如果我注销,则我有错误: 致命错误:调用成员函数 中的非对象上的getId() 我试过: if ($this->getUser()->getGuardUser()

我使用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()


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

谢谢!现在在TemplateSuccess中,我应该使用与ClearPHP中相同的isset($id)?在symfony中,是否要做不同的事情?@Beyed Black:isset()很好。只要确保将变量作为“$this->id”传递给模板,然后就可以执行isset($id)。
if ($this->getUser()->isAuthenticated()) {
  $id = $this->getUser()->getGuardUser()->getId();
}