我的数据库中有一个字段存储decimal值。它在我的数据库迁移中是这样定义的:
$table->decimal('buy_amount', 16, 8)->default(0);现在,使用Laravel雄辩器从数据库中读取,它将返回一个字符串值。根据文件,我尝试使用$casts数组将其转换到模型文件中,但是它使没有区别的。值得一提的是,除了小数外,其他演员都很好。
protected $casts = [
'buy_amount' => 'decimal:8',
];我得到的结果是:

,我错过了什么?
发布于 2021-01-15 21:19:22
这是因为PHP没有decimal类型,因此值被转换为string (参见这个Laracast的职位)。
当转换为十进制时,将调用Illuminate\Database\Eloquent\Concerns\HasAttributes中的Illuminate\Database\Eloquent\Concerns\HasAttributes函数;该函数使用本机PHP函数number_format,返回一个字符串。。
https://stackoverflow.com/questions/65742578
复制相似问题