如何绑定CWebUser与模型用户


How bind CWebUser with model User

如何将Yii:app()->user绑定到模型 user。存在一个连接类型:Yii::app()->user->getUser()

例如,我想获得当前登录用户的电子邮件:

Yii:应用()->用户-> getUser() ->电子邮件;

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

MyWbuser.php in components:

class MyWebUser extends CWebUser{
    private $_profile = null;
    public $loginUrl='/';
    public function init(){
       parent::init();
       if(!$this->getIsGuest()){
            $this->_profile = User::model()->findByPk($this->getId());
       }
    }
    public function getProfile(){
       return $this->_profile;
   }
}
在config . php:

    'user' => array(
        'class' => 'MyWebUser',
    )

那么你可以使用:

Yii::app()->user->profile->name

尝试将以下代码添加到您的useridentity身份验证函数

$this->setState('email',$this->email);

并用于访问该电子邮件,如所示

Yii::app()->user->getState('email');