如何将CWebUser与模型用户绑定

时间:2013-06-20 07:12:15

标签: php authentication yii yii-components

如何将 Yii:app() - >用户绑定到模型用户。有连接类型: Yii :: app() - > user-> getUser()

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

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

我浏览了wiki帖子:http://www.yiiframework.com/wiki/80/add-information-to-yii-app-user-by-extending-cwebuser-better-version/

2 个答案:

答案 0 :(得分:2)

组件中的MyWbuser.php:

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

答案 1 :(得分:1)

尝试将此代码添加到您的用户身份验证功能

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

并用于在任何地方访问该电子邮件,如图所示

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