繁体   English   中英

Laravel Eloquent 属性转换不起作用

[英]Laravel Eloquent attribute casting doesn't work

我的数据库中有一个存储decimal值的字段。 它在我的数据库迁移中定义如下:

$table->decimal('buy_amount', 16, 8)->default(0);

现在使用 Laravel Eloquent 从数据库中读取它会返回一个字符串值。 根据文档,我尝试使用$casts数组将其投射到 model 文件中,但没有区别 值得一提的是,除了小数之外,其他所有演员都可以正常工作。

protected $casts = [
    'buy_amount' => 'decimal:8',
];

这是我得到的结果:

在此处输入图像描述

我错过了什么?

发生这种情况是因为 PHP 没有decimal类型,因此该值被转换为string (请参阅此 Laracasts 帖子

转换为小数时,调用Illuminate\Database\Eloquent\Concerns\HasAttributes中的asDecimal(...) function; 这个 function 使用本机 PHP function number_format它返回一个字符串

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM