2015-06-27 16:22:55 12359次浏览 10条回答 3 悬赏 0 金钱
yii migrate --migrationPath=@yii/rbac/migrations/

组件的配置

'components' => [
        'authManager' => [
            'class' => 'yii\rbac\DbManager',
            'itemTable' => 'auth_item',
            'assignmentTable' => 'auth_assignment',
            'itemChildTable' => 'auth_item_child',
            'db' => 'wangmumudb',
        ],
]

提示的错误

*** applying m140506_102106_rbac_init
Exception 'yii\base\InvalidConfigException' with message 'You should configure "authManager" component to use database before executing this migration.'
  • 回答于 2015-06-27 22:50 举报

    这个估计是Bug,我也没成功过

  • 回答于 2015-06-28 13:01 举报

    复制表数据后,不要修改,直接执行sql,之后统一添加表前缀即可

    1 条回复
    回复于 2015-06-29 08:28 回复

    晓得的呢啊

  • 回答于 2015-06-29 08:47 举报

    db配置好了吗?

    1 条回复
    回复于 2015-06-30 08:45 回复

    测试用例已经成功,现在开始系统开发RBAC了。

  • 回答于 2015-07-12 00:45 举报

    console/config/main.php 中添加如下代码:

    'components' => [
        'authManager' => [
            'class' => 'yii\rbac\DbManager',
        ],
    ],
    

    关闭终端,重新打开终端执行 php yii migrate --migrationPath=@yii/rbac/migrations

    1 条回复
    回复于 2016-03-14 16:02 回复

    配置放在console/config/main.php 中就可以
    放在 backend/config/main.php 中为什么就不行呢?
    如果我只想后台运用这个权限,应该怎么配置

    , 觉得很赞
  • 回答于 2015-11-10 17:35 举报

    参考上面的讲座,我的迁移成功!
    我的是anvanced版,先在common/main.php配置里,'components' 增加rbac组件,分享如下

        'cache' => [
            'class' => 'yii\caching\FileCache',
        ],
    
        //增加rbac组件
        'authManager' => [
            'class' => 'yii\rbac\DbManager',
        ],
    

    然后在cmd里,根目录下,执行
    执行 php yii migrate --migrationPath=@yii/rbac/migrations
    就成功啦!

    2 条回复
    回复于 2017-06-28 11:23 回复

    按照您的方法是可以执行成功的 谢谢

    回复于 2019-10-06 21:17 回复


    想用数据库迁移的方法创建rbac的四张表,可是无法成功。
    我在common\config\main.php 和 config\main.php中都添加了:
    'authManager'=>[
    'class'=>'yii\rabc\DbManager',
    ],
    可是结果都失败了。
    YDC_@QOA}9$6UOX7VL)1C7Q.png
    这是什么情况呢?

  • 回答于 2016-03-31 10:28 举报

    很多人都遇到上面的问题:Exception 'yii\base\InvalidConfigException' with message 'You should configure "authManager" component to use database before executing this migration.'
    其实这里只是你的
    'authManager' => [

        'class' => 'yii\rbac\DbManager',
    ],
    

    配置放错位置了。深入源码你可以知道其实这里他找的配置文件是config/console.php里面的components组建。
    在里面加入:
    'authManager' => [

        'class' => 'yii\rbac\DbManager',
    ],
    

    就ok了

    $config = [
        'id' => 'basic-console',
        'basePath' => dirname(__DIR__),
        'bootstrap' => ['log'],
        'controllerNamespace' => 'app\commands',
        'components' => [
            'cache' => [
                'class' => 'yii\caching\FileCache',
            ],
            'authManager' => [
    	        'class' => 'yii\rbac\DbManager',
            ],
            'log' => [
                'targets' => [
                    [
                        'class' => 'yii\log\FileTarget',
                        'levels' => ['error', 'warning'],
                    ],
                ],
            ],
            'db' => $db,
        ],
        'params' => $params,
        /*
        'controllerMap' => [
            'fixture' => [ // Fixture generation command line.
                'class' => 'yii\faker\FixtureController',
            ],
        ],
        */
    ];
    
    
    1 条回复
    回复于 2016-10-12 17:54 回复

    兄弟 我纠结了一下午的问题 终于被你的说明 茅塞顿开 。。
    简单的问题 考虑的 哎 一言难尽 感谢感谢

  • 回答于 2016-10-12 17:58 举报

    不得不说着简直是个深坑####。

    官方文档说明也太差了,菜鸟级别的怎么知道是console.php 配置去加。
    都会在main.php 去加 然后总是失败。

  • 回答于 2017-07-06 17:19 举报

    执行这条命令php yii migrate --migrationPath=@izyue/admin/migrations
    报错

    Exception 'yii\base\InvalidParamException' with message 'Invalid path alias: @izyue/admin/migrations'
    
    in H:\wamp\www\advanced\vendor\yiisoft\yii2\BaseYii.php:154
    
    Stack trace:
    
    #0 H:\wamp\www\advanced\vendor\yiisoft\yii2\console\controllers\BaseMigrateController.php(117): yii\BaseYii::getAlias('@izyue/admin/mi...')
    
    #1 H:\wamp\www\advanced\vendor\yiisoft\yii2\console\controllers\MigrateController.php(168): yii\console\controllers\BaseMigrateController->beforeAction(Object(yii\base\InlineAction))
    
    #2 H:\wamp\www\advanced\vendor\yiisoft\yii2\base\Controller.php(154): yii\console\controllers\MigrateController->beforeAction(Object(yii\base\InlineAction))
    
    #3 H:\wamp\www\advanced\vendor\yiisoft\yii2\console\Controller.php(128): yii\base\Controller->runAction('', Array)
    
    #4 H:\wamp\www\advanced\vendor\yiisoft\yii2\base\Module.php(523): yii\console\Controller->runAction('', Array)
    
    #5 H:\wamp\www\advanced\vendor\yiisoft\yii2\console\Application.php(180): yii\base\Module->runAction('migrate', Array)
    
    #6 H:\wamp\www\advanced\vendor\yiisoft\yii2\console\Application.php(147): yii\console\Application->runAction('migrate', Array)
    
    #7 H:\wamp\www\advanced\vendor\yiisoft\yii2\base\Application.php(380): yii\console\Application->handleRequest(Object(yii\console\Request))
    
    #8 H:\wamp\www\advanced\yii(27): yii\base\Application->run()
    
    #9 {main}
    
    觉得很赞
  • 回答于 2018-03-05 17:20 举报

    这个需要在console.php 配置里面添加,在main.php或者web.php添加会失败的

    1 条回复
    回复于 2018-03-05 17:22 回复

    要通过migrate来建立这几张表那么authManager组件的配置,应该放在console.php文件components数组中

    觉得很赞
  • 回答于 2019-10-06 21:17 举报

    想用数据库迁移的方法创建rbac的四张表,可是无法成功。
    我在common\config\main.php 和 config\main.php中都添加了:
    'authManager'=>[
    'class'=>'yii\rabc\DbManager',
    ],
    可是结果都失败了。
    YDC_@QOA}9$6UOX7VL)1C7Q.png

您需要登录后才可以回答。登录 | 立即注册
ZendLaravelYii
总监

ZendLaravelYii 浙江杭州

注册时间:2015-06-16
最后登录:2021-01-20
在线时长:21小时52分
  • 粉丝9
  • 金钱1876
  • 威望20
  • 积分2286

热门问题