From 903f5618fecbf0741cd4f5d9eb2c9a21b5b80223 Mon Sep 17 00:00:00 2001 From: Vladimir Zbrailov Date: Sat, 1 Feb 2014 12:57:40 +0400 Subject: [PATCH] Added typecast database types into php types --- framework/CHANGELOG.md | 1 + framework/db/BaseActiveRecord.php | 3 +++ 2 files changed, 4 insertions(+) diff --git a/framework/CHANGELOG.md b/framework/CHANGELOG.md index 4df30c5..47602cd 100644 --- a/framework/CHANGELOG.md +++ b/framework/CHANGELOG.md @@ -115,6 +115,7 @@ Yii Framework 2 Change Log - Enh: Added `yii\web\View::POS_LOAD` (qiangxue) - Enh: Added `yii\web\Response::clearOutputBuffers()` (qiangxue) - Enh: Improved `QueryBuilder::buildLimit()` to support big numbers (qiangxue) +- Enh: Added typecast database types into php types (dizews) - Enh #2240: Improved `yii\web\AssetManager::publish()`, `yii\web\AssetManager::getPublishedPath()` and `yii\web\AssetManager::getPublishedUrl()` to support aliases (vova07) - Chg #1519: `yii\web\User::loginRequired()` now returns the `Response` object instead of exiting the application (qiangxue) - Chg #1586: `QueryBuilder::buildLikeCondition()` will now escape special characters and use percentage characters by default (qiangxue) diff --git a/framework/db/BaseActiveRecord.php b/framework/db/BaseActiveRecord.php index 54d9445..ddddf9d 100644 --- a/framework/db/BaseActiveRecord.php +++ b/framework/db/BaseActiveRecord.php @@ -1002,8 +1002,11 @@ abstract class BaseActiveRecord extends Model implements ActiveRecordInterface { $record = static::instantiate($row); $columns = array_flip($record->attributes()); + /* @var $schema TableSchema */ + $schema = static::getDb()->getTableSchema(static::tableName()); foreach ($row as $name => $value) { if (isset($columns[$name])) { + $value = $schema->getColumn($name)->typecast($value); $record->_attributes[$name] = $value; } else { $record->$name = $value;