[英]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.
請咨詢
有兩種解決方案:
CUserIdentity
類中使用setState()
。 在用戶身份驗證期間它將調用一次,並且不會在下一頁刷新時進行更新。 不要在其中存儲重要信息,例如角色或密碼,因為它們可能存儲在cookie中。 很容易在此存儲名稱,上次訪問時間等信息。 這是一個示例: http : //www.yiiframework.com/wiki/6/how-to-add-more-information-to-yii-app-user
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->role
或Yii::app()->user->getRole()
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.