如何在Yii2中获得用户角色?
我搜索并阅读了Yii2 guide,但我找不到任何解决方案。
答案 0 :(得分:30)
答案 1 :(得分:18)
您可以使用:
Yii::$app->authManager->getRolesByUser(Yii::$app->user->getId());
答案 2 :(得分:7)
我用:
if (\Yii::$app->authManager-> getAssignment($role,$rule_id))
用于过滤rbac中的user id
和role
,有关Yii2 Documentation的更多详情
答案 3 :(得分:1)
如何获得用户角色的另一个例子:
Yii::$app->getUser()->identity->role;
如果您的列名为" role"在您的用户表中。
答案 4 :(得分:0)
您可以使用:
$user =[];
$userAssigned = Yii::$app->authManager->getAssignments(user_id);
foreach($userAssigned as $userAssign){
$user[] = $userAssign->roleName;
}
答案 5 :(得分:0)
答案 6 :(得分:0)
良好且更具视觉效果的决定将是设置所有角色的常量。
$userID = $user->getId();
array_keys(Yii::$app->authManager->getRolesByUser($userID))[0] == User::ROLE_NAME
答案 7 :(得分:-1)
您可以使用createcommand获得用户的角色。
$roleModel = Yii::$app->db
->createCommand("Select * from auth_assignment where user_id='889'")
->queryOne();
echo $roleModel['item_name'];
这将是您在auth赋值中的角色。现在,您可以检查用户是否为管理员或编辑或成员。