我在 CakePHP 2.2 和 MySQL 中有一个应用程序。我注意到返回值的类型转换是许多类型的字符串,如 Float、Decimal、Int、Varchar、Text 等:
浮点数或小数:
var_dump($this->field('field_name'));
string(4) "1.00"
诠释
var_dump($this->field('field_name'));
string(1) "1"
仅对布尔字段使用 TINYINT(1) 不会出现此问题:
小音(1)
var_dump($this->field('field_name'));
bool(true)
通常对于货币字段,我将字段类型设置为 FLOAT 或 DECIMAL(11,2)... 也许我在 CakePHP 中使用这种类型是错误的?这种行为非常乏味,尤其是对于十进制字段,因为当值为 0 时返回字符串“0.00”,这是真的。所以我必须永远记住强制这样的类型:
if((float)$this->field('price')){
....
}
为什么 CakePHP 不返回正确类型转换的值?我该如何解决?谢谢!