rmrevin / yii2-changelog

Active record changelog extension for Yii 2 framework
MIT License
10 stars 4 forks source link

unserialize() expects parameter 1 to be string, resource given when db is PostgreSQL #4

Open reverse-cat opened 6 years ago

reverse-cat commented 6 years ago

in /var/www/html/vendor/rmrevin/yii2-changelog/debug/views/panels/changelog/detail.php at 72 and 90 strings $content = Html::tag('div', VarDumper::dumpAsString(unserialize( $data['changes'] ), 10, true)

тип bytea извлекается из базы PostgreSQL как stream а не строка.

rmrevin commented 6 years ago

@Alendaar Добрый день, спасибо за репорт. Вы можете прислать pull request с решением (или хотя бы тестом).

reverse-cat commented 6 years ago

Для решения проблемы, я добавил такой метод в /resources/Changelog.php public function afterFind() { if( \Yii::$app->db->driverName === 'pgsql'){ $this->changes = stream_get_contents($this->changes); $this->env = stream_get_contents($this->env); } parent::afterFind(); }

С гитом к сожалению никогда не работал кроме установки поэтому pull request прислать не могу.