繁体   English   中英

如何在Yii2中获得用户角色?

[英]How to get user role in Yii2?

如何在Yii2中获得用户角色?

我搜索并阅读了Yii2指南,但我没有找到任何解决方案。

您可以使用getRolesByUser函数为用户获取角色

你可以像这样使用它

\Yii::$app->authManager->getRolesByUser($user_id);

您可以使用:

Yii::$app->authManager->getRolesByUser(Yii::$app->user->getId());

我用 :

if (\Yii::$app->authManager-> getAssignment($role,$rule_id))

用于过滤rbac中的user idrole ,有关Yii2文档的更多详细信息

另一个示例如何获得用户角色:
Yii::$app->getUser()->identity->role;
如果您的用户表中包含名为“role”的列,则它可以正常工作。

您可以使用 :

 $user =[];
 $userAssigned = Yii::$app->authManager->getAssignments(user_id);
 foreach($userAssigned as $userAssign){
      $user[] = $userAssign->roleName;
 } 

如果你正在使用amnah / yii2-user模块,你可以使用:

Yii::$app->user->identity->role->name

它将为您提供当前用户角色名称

好的和更直观的决定将是设定所有角色的常数。

$userID = $user->getId();
array_keys(Yii::$app->authManager->getRolesByUser($userID))[0] == User::ROLE_NAME

您可以使用createcommand获取用户的角色。

    $roleModel = Yii::$app->db
    ->createCommand("Select * from auth_assignment where user_id='889'")
    ->queryOne();

    echo $roleModel['item_name'];

这将是您在auth赋值中的角色。 现在,您可以检查用户是管理员,编辑者还是成员。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM