bupy7 / yii2-activerecord-history

This extension adds storage history of changes to the ActiveRecord model.
26 stars 17 forks source link

Trying to get property of non-object #7

Closed cybernic closed 6 years ago

cybernic commented 6 years ago

I'm trying to install this extension, but migration throws a Exception

Apply the above migration? (yes|no) [no]:yes
*** applying m160102_154310_init
PHP Notice 'yii\base\ErrorException' with message 'Trying to get property of non-object'

in /var/www/raconsole/vendor/bupy7/yii2-activerecord-history/src/migrations/m160102_154310_init.php:14

Stack trace:
#0 /var/www/raconsole/vendor/bupy7/yii2-activerecord-history/src/migrations/m160102_154310_init.php(14): yii\base\ErrorHandler->handleError(8, 'Trying to get p...', '/var/www/racons...', 14, Array)
#1 /var/www/raconsole/vendor/yiisoft/yii2/base/BaseObject.php(109): m160102_154310_init->init()
#2 [internal function]: yii\base\BaseObject->__construct(Array)
#3 /var/www/raconsole/vendor/yiisoft/yii2/di/Container.php(383): ReflectionClass->newInstanceArgs(Array)
#4 /var/www/raconsole/vendor/yiisoft/yii2/di/Container.php(156): yii\di\Container->build('m160102_154310_...', Array, Array)
#5 /var/www/raconsole/vendor/yiisoft/yii2/BaseYii.php(349): yii\di\Container->get('m160102_154310_...', Array, Array)
#6 /var/www/raconsole/vendor/yiisoft/yii2/console/controllers/MigrateController.php(201): yii\BaseYii::createObject(Array)
#7 /var/www/raconsole/vendor/yiisoft/yii2/console/controllers/BaseMigrateController.php(724): yii\console\controllers\MigrateController->createMigration('m160102_154310_...')
#8 /var/www/raconsole/vendor/yiisoft/yii2/console/controllers/BaseMigrateController.php(199): yii\console\controllers\BaseMigrateController->migrateUp('m160102_154310_...')
#9 [internal function]: yii\console\controllers\BaseMigrateController->actionUp(0)
#10 /var/www/raconsole/vendor/yiisoft/yii2/base/InlineAction.php(57): call_user_func_array(Array, Array)
#11 /var/www/raconsole/vendor/yiisoft/yii2/base/Controller.php(157): yii\base\InlineAction->runWithParams(Array)
#12 /var/www/raconsole/vendor/yiisoft/yii2/console/Controller.php(148): yii\base\Controller->runAction('up', Array)
#13 /var/www/raconsole/vendor/yiisoft/yii2/base/Module.php(528): yii\console\Controller->runAction('up', Array)
#14 /var/www/raconsole/vendor/yiisoft/yii2/console/Application.php(180): yii\base\Module->runAction('migrate/up', Array)
#15 /var/www/raconsole/vendor/yiisoft/yii2/console/Application.php(147): yii\console\Application->runAction('migrate/up', Array)
#16 /var/www/raconsole/vendor/yiisoft/yii2/base/Application.php(386): yii\console\Application->handleRequest(Object(yii\console\Request))
#17 /var/www/raconsole/yii(20): yii\base\Application->run()
#18 {main}
root@43ebc37c246c:/scripts# php /var/www/raconsole/yii migrate/up --migrationPath=@bupy7/activerecord/history/migrations
Yii Migration Tool (based on Yii v2.0.15.1)

Then I created table manually, but the same exception appears before attaching behavior to my Model:

yii\base\ErrorException: Trying to get property of non-object in /var/www/raconsole/vendor/bupy7/yii2-activerecord-history/src/behaviors/History.php:197

The problem is that when we initialize the Module with $this->module = Module::getInstance();, Module::getInstance() returns null. The same passes in migration file with: $this->tableName = Module::getInstance()->tableName;

My config.php and console.php are the same:

'modules' => [
        ...
        'arhistory' => [
            'class' => bupy7\activerecord\history\Module::class,
        ],
],

Yii version v2.0.15.1. Basic App

cybernic commented 6 years ago

Solved by: 'bootstrap' => ['arhistory'],

Can be closed.