CWebUser和CUserIdentity

kee*_*eeg 3 yii

我建立了我的应用程序的认证模块,我不太明白之间的关系CWebUserCUserIdentity.

要将用户ID设置为Yii::app()->user->id我必须在我的UserIdentity类中执行此操作并创建方法:

public function getId() {
    return $this->_id;
}
Run Code Online (Sandbox Code Playgroud)

但要设置isAdminYii::app()->user->isAdmin我必须在我的WebUser类中创建一个方法:

function getIsAdmin() {
    $user = $this->loadUser(Yii::app()->user->id);
    return intval($user->user_level_id) == AccountModule::USER_LEVEL_ADMIN;
}
Run Code Online (Sandbox Code Playgroud)

为什么我不能只创建UserIdentity类的方法?这里的分工是什么?

Pay*_*tey 5

UserIdentity(UI)类就像一个ID卡,其中的WebUser类是实际的人以及一切你了解他们.

UI类通过数据库,webservices,textfile等提供身份验证.它可以让您知道关键属性是什么,并允许您操作它们.但是,用户可以为您提供有关他们可以执行的操作的更多信息,名称,细化权限等.

好的,结束比喻

UI类保存密钥信息,因此在询问用户ID时,它将引用User Identity类来获取用户的标识符.

与识别或验证用户无关的任何内容都在WebUser课堂上

根本清除它?

你的榜样

您将该getId函数作为示例,但可以创建该函数WebUser以覆盖默认值,即从状态拉出.

所以不确定你的意思.