Cron错误:消息“用户”组件的配置必须包含“类”元素的异常“ yii \ base \ InvalidConfigException”。

时间:2019-01-28 13:33:21

标签: yii yii2 yii2-advanced-app extend yii2-basic-app

我遵循了此页面https://www.yiiframework.com/wiki/646/how-to-implement-cron-in-yii-2

的编码

我测试了cron但失败了

$ php yii测试/索引

异常'yii \ base \ InvalidConfigException',消息为“用户”组件的配置必须包含“类”元素。

在/var/www/yiidemo/vendor/yiisoft/yii2/di/ServiceLocator.php:205

堆栈跟踪:

#0 /var/www/yiidemo/vendor/yiisoft/yii2/di/ServiceLocator.php(261): yii\di\ServiceLocator->set('user', Array)
#1 /var/www/yiidemo/vendor/yiisoft/yii2/base/Component.php(180): yii\di\ServiceLocator->setComponents(Array)
#2 /var/www/yiidemo/vendor/yiisoft/yii2/BaseYii.php(546): yii\base\Component->__set('components', Array)
#3 /var/www/yiidemo/vendor/yiisoft/yii2/base/BaseObject.php(107): yii\BaseYii::configure(Object(yii\console\Application), Array)
#4 /var/www/yiidemo/vendor/yiisoft/yii2/base/Application.php(206): yii\base\BaseObject->__construct(Array)
#5 /var/www/yiidemo/vendor/yiisoft/yii2/console/Application.php(89): yii\base\Application->__construct(Array)
#6 /var/www/yiidemo/yii(26): yii\console\Application->__construct(Array)
#7 {main}

我使用Yii2,mongdb

我的文件console / config / main.php

$params = array_merge(
    require __DIR__ . '/../../common/config/params.php', 
    require __DIR__ . '/../../common/config/params-local.php', 
    require __DIR__ . '/params.php', 
    require __DIR__ . '/params-local.php'
);

return [
    'id' => 'app-console',
    'basePath' => dirname(__DIR__),
    'bootstrap' => ['log'],
    'controllerNamespace' => 'console\controllers',
    'aliases' => [
        '@bower' => '@vendor/bower-asset',
        '@npm'   => '@vendor/npm-asset',
    ],
    'controllerMap' => [
        'fixture' => [
            'class' => 'yii\console\controllers\FixtureController',
            'namespace' => 'common\fixtures',
        ],
    ],
    'components' => [
        'log' => [
            'targets' => [
                [
                    'class' => 'yii\log\FileTarget',
                    'levels' => ['error', 'warning'],
                ],
            ],
        ],
         'user' => [
             'identityClass' => 'common\models\User',
             'enableAutoLogin' => true,
         ]
    ],
    'params' => $params,
];

1 个答案:

答案 0 :(得分:0)

更新

请注意,控制台应用程序中没有会话,因此如果有会话,则无需添加 map.on('click', 'point', function(e) { e.preventDefault(); console.log('show sidebar'); }); map.on('click', function(e) { if (e.defaultPrevented === false) { console.log('hide taskbar'); } }); 组件。


由于未在控制台应用程序中定义session,因此需要user。在网络应用中,它是默认定义的,因此只能依赖默认值来覆盖某些属性。您需要删除以下部分

class

或为用户组件添加'user' => [ 'identityClass' => 'common\models\User', 'enableAutoLogin' => true, ]

class

'user' => [ 'class' => 'yii\web\User', 'identityClass' => 'common\models\User', ] 和本地配置文件console/config/main.php中。