Laravel模型自动转换类型

问题

mysql中的存的是Decimal类型,laravel取出来后却是string(换成float会解析为浮点型,但是不推荐,因为float本身就存在精度问题),如果每个查询数据库的地方都加个$xxx = float($xxx)明显反人类

解决:Eloquent指定$casts属性

比如有个字段叫money,数据库存的是decimal(10,2),想在获取的时候解析为float类型,可以这样指定

<?php

namespace App\Models;
use Illuminate\Database\Eloquent\Model;

class User extends Model
{
    protected $casts = [
        'money' => 'float',
    ];
}

支持转换的类型:

* integer
* real
* float
* double
* string
* boolean
* object
* array
* collection
* date
* datetime
* timestamp

具体请查看 官方文档

posted @ 2020-02-06 15:37  雪山飞猪  阅读(2070)  评论(0编辑  收藏  举报