我已经认证的那些用户和那些没有认证的用户之间有一些区别.为此,我正在使用
Yii::app()->user->id;
但是,在确定的视图中,我放了以下代码:
<?PHP if(Yii::app()->user->isGuest) { print("Welcome back Guest!"); print("Your id is ".Yii::app()->user->id); } else { print("Welcome back ".Yii::app()->user->name); print("Your id is ".Yii::app()->user->id); }?>
我总是得到“欢迎回来的客人!”,无论我是否登录(成功).如果我已经登录,那么它会显示欢迎信息和用户的id!
编辑
@ briiC.lv
嘿..对不起,迟到的回复,希望你还在跟着!我不扩展给定的UserIdentity类.这是强制性的吗?由于我仍然没有得到很好的整个授权问题,我认为最好是尝试与他们提供的类,然后扩展与我自己的功能..无论如何,接下来我发布我的UserIdentity类与它的小调整.可能问题在这里?
<?PHP class UserIdentity extends CUserIdentity{ private $_id; public function authenticate() { $user = Users::model()->findAll('username=\''.$this->username.'\' AND password=\''.$this->encryptedPassword.'\''); if(!isset($user[0])) { return false; } else { $this->setState('id',$user[0]->id); $this->username = $user[0]->username; $this->errorCode=self::ERROR_NONE; return true; } } public function getId() { return $this->_id; }
}
这是当我建议登录时得到的输出;我成功登录后立即得到这个输出.
[05:23:21.833][trace][vardump] CWebUser#1 ( [allowAutoLogin] => true [guestName] => 'Guest' [loginUrl] => array ( '0' => '/site/login' ) [identityCookie] => null [authTimeout] => null [autoRenewCookie] => false [autoUpdateFlash] => true [CWebUser:_keyPrefix] => '0f4431ceed8f17883650835e575b504b' [CWebUser:_access] => array() [behaviors] => array() [CApplicationComponent:_initialized] => true [CComponent:_e] => null [CComponent:_m] => null )
任何帮助深表感谢!