문제

I have added getId method in UserIdentity class to get user id instead of username but it doestn't fetch me userid. After adding this getId method, both of the following will result as empty

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

I posted UserIdentity class here, pls help to solve this issue

   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;
}

}

And i tried to use CDbCriteria to get id from user model, it fetches usename column only, id column will come as empty

도움이 되었습니까?

해결책

here is a good solution for your case:

check this steps:

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

after doing this steps just call this:

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

다른 팁

you can use another method for set user id

else {        
        $this->_id=$users->id;
        $this->setState('user_id', $users->id);

        $this->errorCode = self::ERROR_NONE;

    }

and call like this

Yii::app()->user->user_id;
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top