如何检查登录用户是否在Yii2中具有特定角色

时间:2018-10-07 12:39:24

标签: yii2 yii2-advanced-app

这是我的代码:

$user = \Yii::$app->user->identity->id;
if($user->has['dce']){
    echo true;
}
else
{
    echo false;
}

这就是我得到的:

  

以整数调用成员函数has()

2 个答案:

答案 0 :(得分:3)

您应该使用can()方法:

return Yii::$app->user->can('dce');

您可以在Access Check部分的文档中找到更多信息。

答案 1 :(得分:0)

在bac中

创建一些角色

    $auth = Yii::$app->authManager;
    $auth->removeAll();

    $operator = $auth->createRole('operator');
    $admin = $auth->createRole('admin');

    $auth->add($operator);
    $auth->add($admin);

    $auth->addChild($admin, $operator);

添加权限

    $someaction = $auth->createPermission('someaction');
    $someaction->description = 'ome action';
    $auth->add($someaction);

    $auth->addChild($admin, $someaction);

现在

if(Yii::$app->user->can('someaction')){
    return true;
} else{
   return false;
}