我在UserIdentity类中添加了getId方法来获取用户ID而不是用户名,但是它不会获取用户ID。添加此getId方法后,以下两项都将为空

          1. Yii::app()->user->getId();
          2. Yii::app()->user->id;


我在这里发布了UserIdentity类,请帮助解决此问题

   class UserIdentity extends CUserIdentity
     {
   private $_id;
    public function authenticate()
{
    $users= User::model()->findByAttributes(array('name'=>$this->name));
    $password= User::model()->findByAttributes(array('password'=>$this->password));
        if($users===null) {
            $this->errorCode = self::ERROR_USERNAME_INVALID;
        }
        else if($password===null) {
            $this->errorCode = self::ERROR_PASSWORD_INVALID;
        }
        else {
            $this->_id=$users->id;
            $this->errorCode = self::ERROR_NONE;

        }
        return !$this->errorCode;
}
public function getId()
{
   return $this->_id;
}


}

我试图使用CDbCriteria从用户模型获取ID,它仅获取usename列,id列将为空

最佳答案

这是适合您的情况的好解决方案:

检查以下步骤:

http://www.yiiframework.com/wiki/80/add-information-to-yii-app-user-by-extending-cwebuser-better-version/

完成此步骤后,只需调用以下命令:

Yii::app()->user->id;
Yii::app()->user->name;
Yii::app()->user->email;

关于php - 如何在Yii框架中获取用户ID而不是名称?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21949885/

10-14 14:42
查看更多