【发布时间】:2015-12-08 15:49:51
【问题描述】:
我正在搜索登录用户的用户角色,但我不知道如何打印用户角色名称。我试过这个:
$Role = Yii::$app->authManager->getRolesByUser(Yii::$app->user->getId());
什么时候,我做了print_r($Role);我明白了:
Array ( [superadmin] => yii\rbac\Role Object ( [type] => 1 [name] => superadmin [description] => Super admin can do any operation in the application [ruleName] => [data] => [createdAt] => [updatedAt] => ) )
我正在寻找特定的角色名称,但我无法访问
Array ( [superadmin] => yii\rbac\Role Object ........)
^ unable to access this name.
当我输入 print_r($Role[0]->name); 时,我遇到了类似的错误
PHP 通知 – yii\base\ErrorException
未定义的偏移量:0
而且,如果我确实喜欢这种方式(意味着手动将 $rolename 传递给数组索引)它正在工作。
$roleName = 'superadmin';
print_r($Role[$roleName]->name);
为什么这个要求来找我,因为登录用户没关系。但是,如果我想知道其他用户角色名称,那么我需要将索引名称传递到这里$Role[$roleName]->name
请帮助我访问这个“超级管理员”。我不知道如何获取它的索引名称。
Array ( [superadmin] => yii\rbac\Role Object
^ unable to access this name.
【问题讨论】:
-
U 可以用于这个 array_shift 例如: if(is_array($Role))array_shift($Role)->name;我不仅得到这个数组的第一个元素
-
是的。这是正确的@NuriddinRashidov。这么多天以来,你就是我的救命恩人。很高兴你在我的名单上。你能把这个写成答案吗?
-
首先@Nana 感谢您对我的评论的关注。我写了我的答案。
标签: php yii2 yii2-advanced-app yii2-basic-app yii2-user-roles