0

Suddenly any of the migration command is not working in my project and i don't know why. following is the errors in cmd.

C:\wamp64\www\project>yii migrate
Exception 'yii\base\InvalidConfigException' with message 'Failed to instantiate component or class "user".'

in C:\wamp64\www\project\vendor\yiisoft\yii2\di\Instance.php:139

Stack trace:
#0 C:\wamp64\www\project\vendor\yiisoft\yii2\filters\AccessControl.php(100): yii\di\Instance::ensure(Object(yii\di\Instance), 'yii\\web\\User')
#1 C:\wamp64\www\project\vendor\yiisoft\yii2\base\Object.php(107): yii\filters\AccessControl->init()
#2 [internal function]: yii\base\Object->__construct(Array)
#3 C:\wamp64\www\project\vendor\yiisoft\yii2\di\Container.php(381): ReflectionClass->newInstanceArgs(Array)
#4 C:\wamp64\www\project\vendor\yiisoft\yii2\di\Container.php(156): yii\di\Container->build('yii\\filters\\Acc...', Array, Array)
#5 C:\wamp64\www\project\vendor\yiisoft\yii2\BaseYii.php(348): yii\di\Container->get('yii\\filters\\Acc...', Array, Array)
#6 C:\wamp64\www\project\vendor\yiisoft\yii2\base\Component.php(183): yii\BaseYii::createObject(Array)
#7 C:\wamp64\www\project\vendor\yiisoft\yii2\BaseYii.php(529): yii\base\Component->__set('beforeRequest', Array)
#8 C:\wamp64\www\project\vendor\yiisoft\yii2\base\Object.php(105): yii\BaseYii::configure(Object(yii\console\Application), Array)
#9 C:\wamp64\www\project\vendor\yiisoft\yii2\base\Application.php(205): yii\base\Object->__construct(Array)
#10 C:\wamp64\www\project\vendor\yiisoft\yii2\console\Application.php(89): yii\base\Application->__construct(Array)
#11 C:\wamp64\www\project\yii(26): yii\console\Application->__construct(Array)
#12 {main}

Please help me to solve it.

Muhammad Umair
  • 103
  • 1
  • 12
  • Show us your configuration for `user` component. – Bizley Jun 12 '17 at 06:35
  • @Bizley 'user' => [ 'identityClass' => 'common\models\User', 'enableAutoLogin' => true, 'identityCookie' => ['name' => '_identity-backend', 'httpOnly' => true], ], – Muhammad Umair Jun 12 '17 at 06:45
  • Stack trace shows weird things - have you set access control filter for console controller? – Bizley Jun 12 '17 at 07:24
  • @Bizley yes i have used this code in common/config/main 'as beforeRequest' => [ //if guest user access site so, redirect to login page. 'class' => 'yii\filters\AccessControl', 'rules' => [ [ 'actions' => ['login', 'error'], 'allow' => true, ], [ 'allow' => true, 'roles' => ['@'], ], ], ], – Muhammad Umair Jun 12 '17 at 07:41
  • You need to rewrite this so console controllers are not affected by this filter - it's pointless there. – Bizley Jun 12 '17 at 07:42
  • @Bizley Thanks for the error detection. If i remove this code then migration works properly. But why is this happening? – Muhammad Umair Jun 12 '17 at 07:43
  • Probably user component can not be configured properly to be used with access control filter because there is no session handling in console app. – Bizley Jun 12 '17 at 07:45
  • I moved that code from common/config/main to backend/config/main and now both functionality check and migration working, – Muhammad Umair Jun 12 '17 at 07:47

0 Answers0