基本上,在我的MSSQL DB中,记录的列值为0.21
,但是在视图(从DB读取的模型)中,它无处不在.21
的情况下0
。可以更改这种行为吗?
答案 0 :(得分:1)
我不是MSSQL专家,但是在这种情况下,PDO可能以字符串形式返回.21
。字符串.21
将被识别为数字,因此1 + '.21'
将返回1.21
,但是当您只想显示此字符串时,将不进行任何转换。最简单的方法(至少从PHP方面来说)是将此值强制转换为float:
echo (float) '.21'; // 0.21
您还可以将AttributeTypecastBehavior
配置为在活动记录级别自动执行此操作:
public function behaviors() {
return [
'typecast' => [
'class' => AttributeTypecastBehavior::class,
'attributeTypes' => [
'my_attribute' => AttributeTypecastBehavior::TYPE_FLOAT,
],
],
];
}