安装yii2-rbac错误您有错误的authManager配置

问题描述:

我在此站点页面安装yii2-rbac:https://github.com/dektrium/yii2-rbac/blob/master/docs/installation.md。 我第二次做。第一次我都做了,但我在config/web.php文件写道:安装yii2-rbac错误您有错误的authManager配置

'modules' => [ 
    'user' => [ 
     'class' => 'dektrium\user\Module', 
    ], 
    //'rbac' => 'dektrium\rbac\RbacWebModule', 
    'rbac' => 'dektrium\rbac\RbacConsoleModule', 

], 

我不知道,“RBAC” =>“dektrium \ RBAC \ RbacConsoleModule”它必须在控制台中写。 PHP(不在web.php中)。

'authManager' => [ 
     'class'  => 'yii\rbac\DbManager', 
     //'defaultRoles' => ['guest'], 
    ], 

` 这段代码我已经在这两个配置文件中写道:web.php和console.php,但在web.php我已经写了 'RBAC'=> 'dektrium \ RBAC \ RbacConsoleModule' 和console.php我没有写过,但一切正常:yii2-rbac已经安装成功。所有交易都已通过成功。但在web.php中'rbac'=>'dektrium \ rbac \ RbacConsoleModule'在我看来是错误的。它不是Web模块,它是控制台模块。然后我进行了回滚事务(迁移/下移),并且通过从composer.json中删除“dektrium/yii2-rbac”:“[email protected]”声明,我已经删除了rbac。全部被删除。 比我第二次开始安装rbac。作曲家安装后,我在web.php也写道:

'modules' => [ 
    'user' => [ 
     'class' => 'dektrium\user\Module', 
    ], 
    'rbac' => 'dektrium\rbac\RbacWebModule', 
    //'rbac' => 'dektrium\rbac\RbacConsoleModule', 

], 

和console.php我已经写了:

'modules' => [ 

    'rbac' => 'dektrium\rbac\RbacConsoleModule', 

], 

上yii2该网站后不它的工作!我改变了web.php“... RbacConsoleModule”。网站工作。为什么它不适用于RbacWebModule?然后我尝试申请交易,以前我已经回滚过,但是引发错误:您的authManager配置不正确 enter image description here

我该怎么办?帮我。生我的英语。我来自俄罗斯。

我console.php:

$config = [ 
'id' => 'basic-console', 
'basePath' => dirname(__DIR__), 
'bootstrap' => ['log'], 
'controllerNamespace' => 'app\commands', 
'components' => [ 
    'cache' => [ 
     'class' => 'yii\caching\FileCache', 
    ], 
    'log' => [ 
     'targets' => [ 
      [ 
       'class' => 'yii\log\FileTarget', 
       'levels' => ['error', 'warning'], 
      ], 
     ], 
    ], 
    'db' => $db, 

    'authManager' => [ 
     'class'  => 'yii\rbac\DbManager', 
     //'defaultRoles' => ['guest'], 
    ] 
], 

'modules' => [ 

    'rbac' => 'dektrium\rbac\RbacConsoleModule', 

], 

// ....

我web.php:

//This all in $component 

    'db' => require(__DIR__ . '/db.php'), 


    'authManager' => [ 
     'class'  => 'yii\rbac\DbManager', 
     //'defaultRoles' => ['guest'], 
    ], 

], 

'modules' => [ 
    'user' => [ 
     'class' => 'dektrium\user\Module', 
    ], 
    //'rbac' => 'dektrium\rbac\RbacWebModule', 
    'rbac' => 'dektrium\rbac\RbacConsoleModule', 

], 

这一切!问题已经确定。它必须写入authManager部分到模块,而不是在组件中:

'modules' => [ 
    'user' => [ 
     'class' => 'dektrium\user\Module', 
    ], 

    'authManager' => [ 
     'class'  => 'yii\rbac\DbManager', 
    //'defaultRoles' => ['guest'], 
    ] 

    //'rbac' => 'dektrium\rbac\RbacWebModule', 
    'rbac' => 'dektrium\rbac\RbacConsoleModule', 

]