异常'yii \ base \ InvalidConfigException',带有消息'“user”组件的配置必须包含“class”元素。

时间:2017-11-01 03:18:43

标签: php yii2 rbac

你好我在作曲家Yii migrate --migrationPath=@yii/rbac/migrations like this

上运行命令时出现以下错误

在C:\ xampp \ htdocs \ advanced \ vendor \ yiisoft \ yii2 \ di \ ServiceLocator.php:204 堆栈跟踪:

#0 C:\xampp\htdocs\advanced\vendor\yiisoft\yii2\di\ServiceLocator.php(260): yii\di\ServiceLocator->set('user', Array)
#1 C:\xampp\htdocs\advanced\vendor\yiisoft\yii2\base\Component.php(172): yii\di\ServiceLocator->setComponents(Array)
#2 C:\xampp\htdocs\advanced\vendor\yiisoft\yii2\BaseYii.php(529): yii\base\Component->__set('components', Array)
#3 C:\xampp\htdocs\advanced\vendor\yiisoft\yii2\base\Object.php(105): yii\BaseYii::configure(Object(yii\console\Application), Array)
#4 C:\xampp\htdocs\advanced\vendor\yiisoft\yii2\base\Application.php(205): yii\base\Object->__construct(Array)
#5 C:\xampp\htdocs\advanced\vendor\yiisoft\yii2\console\Application.php(89): yii\base\Application->__construct(Array)
#6 C:\xampp\htdocs\advanced\yii(26): yii\console\Application->__construct(Array)
#7 {main}

heres my `config\main.php

'vendorPath' => dirname(dirname(__DIR__)) . '/vendor',
    'modules'    => [
         'admin'     => [
                'class' => 'mdm\admin\Module',
                        ],
                    ],
    'components' => [
    'authManager' => [
        'class' => 'yii\rbac\DbManager', // or use 'yii\rbac\PhpManager'
    ],
    'user' => [
        'identityClass' => 'mdm\admin\models\User',
        'loginUrl' => ['admin/user/login'],
    ]
]
];
`

任何人都可以帮我解决这个问题吗?

1 个答案:

答案 0 :(得分:0)

我不知道答案是否仍然有效,但是今天我遇到了同样的问题,并为您找到了解决方法:

在您的config/main.php中定义了“用户”组件。对于Web应用程序,这是可以的,但控制台应用程序需要一个带有“类”条目的配置。因此,在配置数组中添加“类”信息,一切正常:

'user' => [
    'class' => 'mdm\admin\models\User',
    'identityClass' => 'mdm\admin\models\User',
    'loginUrl' => ['admin/user/login'],
]

希望有帮助!