我正在尝试在我新安装的 yii2 高级应用程序中安装和使用此 robregonm/yii2-auth 模块。我用作曲家来安装它。使用此命令
php composer.phar require robregonm/yii2-auth "dev-master"
我已经相应地配置了我的 Web 和控制台文件。现在我正在尝试使用
./yii migrate/up --migrationPath=@auth/migrations
我收到以下错误。
Exception 'yii'base'UnknownPropertyException' with message 'Setting unknown property: yii'db'Connection::user'
in /var/www/mycoolapp/vendor/yiisoft/yii2/base/Component.php:196
Stack trace:
#0 /var/www/mycoolapp/vendor/yiisoft/yii2/BaseYii.php(515): yii'base'Component->__set('user', Array)
#1 /var/www/mycoolapp/vendor/yiisoft/yii2/base/Object.php(104): yii'BaseYii::configure(Object(yii'db'Connection), Array)
#2 [internal function]: yii'base'Object->__construct(Array)
#3 /var/www/mycoolapp/vendor/yiisoft/yii2/di/Container.php(365): ReflectionClass->newInstanceArgs(Array)
#4 /var/www/mycoolapp/vendor/yiisoft/yii2/di/Container.php(147): yii'di'Container->build('yii'db'Connecti...', Array, Array)
#5 /var/www/mycoolapp/vendor/yiisoft/yii2/BaseYii.php(341): yii'di'Container->get('yii'db'Connecti...', Array, Array)
#6 /var/www/mycoolapp/vendor/yiisoft/yii2/di/ServiceLocator.php(132): yii'BaseYii::createObject(Array)
#7 /var/www/mycoolapp/vendor/yiisoft/yii2/console/controllers/MigrateController.php(124): yii'di'ServiceLocator->get('db')
#8 /var/www/mycoolapp/vendor/yiisoft/yii2/base/Controller.php(144): yii'console'controllers'MigrateController->beforeAction(Object(yii'base'InlineAction))
#9 /var/www/mycoolapp/vendor/yiisoft/yii2/console/Controller.php(83): yii'base'Controller->runAction('up', Array)
#10 /var/www/mycoolapp/vendor/yiisoft/yii2/base/Module.php(444): yii'console'Controller->runAction('up', Array)
#11 /var/www/mycoolapp/vendor/yiisoft/yii2/console/Application.php(164): yii'base'Module->runAction('migrate/up', Array)
#12 /var/www/mycoolapp/vendor/yiisoft/yii2/console/Application.php(140): yii'console'Application->runAction('migrate/up', Array)
#13 /var/www/mycoolapp/vendor/yiisoft/yii2/base/Application.php(329): yii'console'Application->handleRequest(Object(yii'console'Request))
#14 /var/www/mycoolapp/yii(30): yii'base'Application->run()
#15 {main}
PHP Fatal error: Uncaught exception 'yii'base'InvalidConfigException' with message 'Unable to append to log file: /var/www/mycoolapp/console/runtime/logs/app.log' in /var/www/mycoolapp/vendor/yiisoft/yii2/log/FileTarget.php:87
Stack trace:
#0 /var/www/mycoolapp/vendor/yiisoft/yii2/log/Target.php(103): yii'log'FileTarget->export()
#1 /var/www/mycoolapp/vendor/yiisoft/yii2/log/Dispatcher.php(179): yii'log'Target->collect(Array, true)
#2 /var/www/mycoolapp/vendor/yiisoft/yii2/log/Logger.php(162): yii'log'Dispatcher->dispatch(Array, true)
#3 [internal function]: yii'log'Logger->flush(true)
#4 {main}
thrown in /var/www/mycoolapp/vendor/yiisoft/yii2/log/FileTarget.php on line 87
我对这里缺少什么感到困惑?我在应用程序中的任何地方都找不到身份验证模块。我的问题是我应该在哪里克隆应用程序中的 yii2-auth?
您似乎错误地配置了配置文件中的db
组件,因为user
参数不存在,也许您的意思是username
.因此,问题不在于扩展本身,而在于您的本地配置设置。
您的db
组件应如下所示:
'db' => [
'class' => 'yii'db'Connection',
'dsn' => 'pgsql:dbname=YourDbName...', // replace pgsql with your db driver
'username' => 'YourUsername',
'password' => 'YourPwd',
'enableSchemaCache' => false,
'charset' => 'utf8',
],
希望这有帮助。
更改控制台/配置/主本地.php,将密钥预加载替换为引导程序。
return [
'preload' => [
//'debug',
],
'modules' => [
//'debug' => 'yii'debug'Module',
//'gii' => 'yii'gii'Module',
],
];
自
return [
'bootstrap' => [
//'debug',
],
'modules' => [
//'debug' => 'yii'debug'Module',
//'gii' => 'yii'gii'Module',
],
];