簡體   English   中英

yii1如何從Yii :: app()-> user命令獲取用戶數據

[英]yii1 how to get userdata from Yii::app()->user command

我想獲取登錄用戶的角色ID,以使網站的特定鏈接可見。 目前,我有學生表和導師表,並且兩個用戶分別登錄。 學生表的角色為1,教師表的角色為2,如何檢查登錄用戶的角色。

我試過了

<?php echo Yii::app()->user->role;?>

但它返回以下錯誤

Property "CWebUser.role" is not defined.

請咨詢

有兩種解決方案:

  1. 在擴展的CUserIdentity類中使用setState() 在用戶身份驗證期間它將調用一次,並且不會在下一頁刷新時進行更新。 不要在其中存儲重要信息,例如角色或密碼,因為它們可能存儲在cookie中。 很容易在此存儲名稱,上次訪問時間等信息。

這是一個示例: http : //www.yiiframework.com/wiki/6/how-to-add-more-information-to-yii-app-user

  1. 擴展CWebUser並添加一些公共方法,例如getRole()

main.php

'user' => array('class' => 'application.components.WebUser')

WebUser.php

class WebUser extends CWebUser {
    public $role;

    public function getRole(){
        if ($this->role === null) {
            // Here you need to get User role
            $this->role = Yii::app()->db->createCommand("SELECT role FROM {{user}} WHERE id=:id")->queryScalar(array(':id' => Yii::app()->user->id));
        }

        return $this->role;
    }
}

然后在需要的地方調用Yii::app()->user->roleYii::app()->user->getRole()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM