我一直没懂Useridentity里写Private $_Id的意图?

我一直没懂UserIdentity里写private $_id的意图?

到底有啥作用,这个类里




<?php

class UserIdentity extends CUserIdentity {

	

	//private $_id;

	

	public function authenticate() {

		$params = array(

			'equal' => array(

				'name' => $this->username,

			)

		);

		

		$user = APSUtils::exec('','/get/user/@all',json_encode($params));

		if($user === null) {

			$this->errorCode = self::ERROR_USERNAME_INVALID;

		} elseif (APSUtils::exec('', '/get/user/@verify/'.$user[0]['rowKey'], '{"passwd":"'.$this->password.'"}') === null) {

			$this->errorCode = self::ERROR_PASSWORD_INVALID;

		} else {

			$this->errorCode = self::ERROR_NONE;

			//$this->_id = $user[0]['rowKey'];

			

		}

		return $this->errorCode;

	}

	

//	public function getId() {

//		return $this->_id;

//	}

}



这个是登录的model里面的方法




public function login() {

		

		if (!$this->_identity->errorCode) {

		 	Yii::app()->user->login($this->_identity);

		 	return true;

		}

		return false;

	}



在上面这段代码里,开启注释掉的代码和没开启之前 没任何影响。。。

还有一个问题就是Yii::app()->user->id 是怎么赋值的,我现在打印$user 里面就没id的东西,现在id全部用rowKey代替了,一串字符串。

为什么登录之后打印Yii::app()->user->id会出来一个2呢

Yii::app()->user 指的是 CWebUser

你去看看Cwebuser->login()方法的代码就知道了。在登陆验证的时候,会调用UserIdentity里面的getId的方法(有这个方法的情况下。)然后通过changeIdentity setid 等等 赋值给了user的id 。