Yii2控制台应用程序 - cookieValidationKey配置错误

时间:2017-10-31 13:42:08

标签: php wampserver yii2-advanced-app

我已在cookieValidationKeybackend\config\main.php内配置了frontend\config\main.php,并将其从common\config\main.php中移除。但是当我在命令行中运行php yii时。我收到这个错误。 甚至在我将其设置到我的后端配置之前,当我使用命令行时出现错误。

$ php yii
Exception 'yii\base\UnknownPropertyException' with message 'Setting unknown property: yii\console\Request:
:cookieValidationKey'

in D:\web\wamp64\www\html\royall.dev\vendor\yiisoft\yii2\base\Component.php:201

Stack trace:
#0 D:\web\wamp64\www\html\royall.dev\vendor\yiisoft\yii2\BaseYii.php(525): yii\base\Component->__set('cook
ieValidatio...', '9H2hvsco52yQ0N2...')
#1 D:\web\wamp64\www\html\royall.dev\vendor\yiisoft\yii2\base\Object.php(105): yii\BaseYii::configure(Obje
ct(yii\console\Request), Array)
#2 [internal function]: yii\base\Object->__construct(Array)
#3 D:\web\wamp64\www\html\royall.dev\vendor\yiisoft\yii2\di\Container.php(381): ReflectionClass->newInstan
ceArgs(Array)
#4 D:\web\wamp64\www\html\royall.dev\vendor\yiisoft\yii2\di\Container.php(156): yii\di\Container->build('y
ii\\console\\Req...', Array, Array)
#5 D:\web\wamp64\www\html\royall.dev\vendor\yiisoft\yii2\BaseYii.php(344): yii\di\Container->get('yii\\con
sole\\Req...', Array, Array)
#6 D:\web\wamp64\www\html\royall.dev\vendor\yiisoft\yii2\di\ServiceLocator.php(135): yii\BaseYii::createOb
ject(Array)
#7 D:\web\wamp64\www\html\royall.dev\vendor\yiisoft\yii2\console\Application.php(219): yii\di\ServiceLocat
or->get('request')
#8 D:\web\wamp64\www\html\royall.dev\vendor\yiisoft\yii2\base\Application.php(380): yii\console\Applicatio
n->getRequest()
#9 D:\web\wamp64\www\html\royall.dev\yii(27): yii\base\Application->run()
#10 {main}

为什么会这样?我的cookieValidationKey内没有console\config\main.php,因此不应弹出此错误。

我使用的是Windows和wamp-server,但是我在Ubuntu服务器上进行了测试,它返回了相同的错误。

1 个答案:

答案 0 :(得分:0)

这是因为你的控制台命令在执行实际操作之前组合了所有配置。有些配置参数对控制台操作无效,但对Web请求很有用。解决方案是在执行控制台操作之前删除这些参数 添加以下行

unset($config['components']['request']);

$application = new yii\console\Application($config);
文件yii中的

因为我通过vagrant运行web服务器,所以我没有测试是否通过yii命令对web应用程序产生副作用。