Yii 2用户身份验证和基于角色的访问控制(RBAC)模块安装和使用

I am trying to install and use this robregonm / yii2-auth module in my newly installed yii2 advance app. I used composer to install it. using this command

php composer.phar require robregonm/yii2-auth "dev-master"

I have configured my web and console files accordingly. now I am trying to run migration as mentioned using

./yii migrate/up --migrationPath=@auth/migrations

And I am getting following error.

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

I am confused about whats missing here? I can not find auth module anywhere in app. My question is where should I clone yii2-auth in app?

It seems that you misconfigured the db component in your config file, because, the user param does not exist, maybe you meant username. So the problem is not the extension itself but your local configuration setup.

Your db component should look like this:

    'db' => [
        'class' => 'yii\db\Connection',
        'dsn' => 'pgsql:dbname=YourDbName...', // replace pgsql with your db driver
        'username' => 'YourUsername',
        'password' => 'YourPwd',
        'enableSchemaCache' => false,
        'charset' => 'utf8',
    ],

Hope this helps.

Change you console/config/main-local.php, replace the key preload with bootstrap.

return [
    'preload' => [
        //'debug',
    ],
    'modules' => [
        //'debug' => 'yii\debug\Module',
        //'gii' => 'yii\gii\Module',
    ],
];

TO

return [
    'bootstrap' => [
        //'debug',
    ],
    'modules' => [
        //'debug' => 'yii\debug\Module',
        //'gii' => 'yii\gii\Module',
    ],
];