我遵循了此页面的代码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,
];
更新
请注意,控制台应用程序中没有会话,因此您无需添加
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
.