Yii2 如何添加使用RBAC规则来控制对控制器操作的访问?

Yii2 如何添加使用RBAC规则来控制对控制器操作的访问?,yii2,Yii2,我正在设置一个新的Yii 2.0项目,我正在尝试使用RBAC控制对某些控制器操作的访问。我正在使用DbManager。如何在控制器类的顶部设置规则数组以控制对操作的访问?特别是在控制器中,您可以通过这种方式添加规则 public function behaviors() { return [ 'access' => [ 'class' => AccessControl::className(), 'rules'

我正在设置一个新的Yii 2.0项目,我正在尝试使用RBAC控制对某些控制器操作的访问。我正在使用DbManager。如何在控制器类的顶部设置规则数组以控制对操作的访问?

特别是在控制器中,您可以通过这种方式添加规则

public function behaviors()
{
    return [
        'access' => [
            'class' => AccessControl::className(),
            'rules' => [
                [
                    'actions' => ['index','view'],
                    'allow' => true,
                    'roles' => ['viewer', 'viewerModel1', 'viewerModel2'],
                ],
                [
                    'allow' => true,
                    'roles' => ['superAdmin', 'admin', 'manage', 'managerModel1', 'managerModel2'],
                ],   
            ],
        ],        
        'verbs' => [
            'class' => VerbFilter::className(),
            'actions' => [
                'delete' => ['post'],
            ],
        ],
    ];
}

此规则允许访问“查看器”、“viewerModel1”、“viewerModel2”的索引和视图。管理层对superAdmin、admin、manage、managerModel1、managerModel2的所有访问权限通过这种方式,其他角色无法访问此控制器的视图应用程序

我找到了一个Stackoverflow答案,回答了我的问题: