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

问题描述 投票:0回答:1

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

我测试了 cron 但失败了

$ php yii 测试/索引

异常“yii ase\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,
];
php yii yii2 extend
1个回答
0
投票

更新

请注意,控制台应用程序中没有会话,因此您无需添加

session
组件(如果有,请删除它们。


因为

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

'user' => [
      'identityClass' => 'common\models\User',
      'enableAutoLogin' => true,
 ]

或为用户组件添加

class

'user' => [
      'class' => 'yii\web\User',
      'identityClass' => 'common\models\User',
 ]

console/config/main.php
和本地配置文件
console/config/main-local.php
.

© www.soinside.com 2019 - 2024. All rights reserved.