YIi2 migrations建表,float精度设置失效 [ 2.0 版本 ]
rt,float精度设置失效。
查询源码,发现
preg_replace('/\(.+\)/', '(' . $matches[2] . ')', $this->typeMap[$matches[1]]) . $matches[3];
而其中
$matches = [
'float(10,2) NOT NULL DEFAULT \'null\' COMMENT \'asdf\'',
'float',
'10,2',
' NOT NULL DEFAULT \'null\' COMMENT \'asdf\'',
];
$this->typeMap[$matches[1]]) = 'float';
导致匹配完成后,没有精度设置。
同理,如果是decimal,那么他的
$this->typeMap[$matches[1]]) = 'decimal(10,0)';
可以匹配到括号里面的。
求解这个是框架设计的问题,还是我什么地方理解错误。
dingjj2010 补充于 2016-09-23 11:49
typeMap值在文件yii\db\mysql\QueryBuilder;
匹配方法在文件yii\db\QueryBuilder;getColumnType方法
dingjj2010 补充于 2016-09-23 11:58
共 2 个回答
dingjj2010
注册时间:2015-05-21
最后登录:2021-04-15
在线时长:63小时59分
最后登录:2021-04-15
在线时长:63小时59分
- 粉丝16
- 金钱6440
- 威望360
- 积分10670