我使用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()
答案 0 :(得分:3)
if ($this->getUser()->isAuthenticated()) {
$id = $this->getUser()->getGuardUser()->getId();
}
isAuthenticated()
方法适用于sfUser类,而不是sfGuardUser。如果用户通过身份验证,您只能通过sfUser访问sfGuardUser类。