Yii2:无法执行RBAC迁移(您应该配置"authManager"...)

rob*_*sch 17 migration console configuration yii2

正如这里所描述的那样,我正在尝试进行迁移,以便让yii创建用户身份验证表.但是我得到错误:

异常'yii\base\InvalidConfigException',消息'您应该在执行此迁移之前配置"authManager"组件以使用数据库.

authManager存在于配置中,但我仍然遇到该错误.组态:

'components' => [
    ...
    'db' => $db,
    'authManager'  => [
        'class'        => 'yii\rbac\DbManager',
        //            'defaultRoles' => ['guest'],
    ],
    ...
],
Run Code Online (Sandbox Code Playgroud)

有什么问题?

rob*_*sch 50

问题很简单:没有使用配置.yii migrate是一个控制台命令,通常这些命​​令的配置放在一个单独的文件中.

对于我创建应用程序的yii2-app-base模板,有一个config/console.php配置文件需要声明authManager.仅仅在config/web.php声明中使用它是不够的.

yii2-app-advanced的情况下,应该console/config/main.php在后端或前端配置文件中声明authManager,而不是在后端或前端配置文件中.

  • 那么为什么[官方文档](http://www.yiiframework.com/doc-2.0/guide-security-authorization.html)这么说:在 yii2-advanced-app 的情况下, authManager 应该只在 common/ 中声明一次配置/main.php。 (2认同)