Commit 903f5618 by Vladimir Zbrailov

Added typecast database types into php types

parent 807223ef
...@@ -115,6 +115,7 @@ Yii Framework 2 Change Log ...@@ -115,6 +115,7 @@ Yii Framework 2 Change Log
- Enh: Added `yii\web\View::POS_LOAD` (qiangxue) - Enh: Added `yii\web\View::POS_LOAD` (qiangxue)
- Enh: Added `yii\web\Response::clearOutputBuffers()` (qiangxue) - Enh: Added `yii\web\Response::clearOutputBuffers()` (qiangxue)
- Enh: Improved `QueryBuilder::buildLimit()` to support big numbers (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) - 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 #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) - Chg #1586: `QueryBuilder::buildLikeCondition()` will now escape special characters and use percentage characters by default (qiangxue)
......
...@@ -1002,8 +1002,11 @@ abstract class BaseActiveRecord extends Model implements ActiveRecordInterface ...@@ -1002,8 +1002,11 @@ abstract class BaseActiveRecord extends Model implements ActiveRecordInterface
{ {
$record = static::instantiate($row); $record = static::instantiate($row);
$columns = array_flip($record->attributes()); $columns = array_flip($record->attributes());
/* @var $schema TableSchema */
$schema = static::getDb()->getTableSchema(static::tableName());
foreach ($row as $name => $value) { foreach ($row as $name => $value) {
if (isset($columns[$name])) { if (isset($columns[$name])) {
$value = $schema->getColumn($name)->typecast($value);
$record->_attributes[$name] = $value; $record->_attributes[$name] = $value;
} else { } else {
$record->$name = $value; $record->$name = $value;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment