Laravel模型自动转换类型

问题

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

解决:Eloquent指定$casts属性

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

<?php

namespace AppModels;
use IlluminateDatabaseEloquentModel;

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

支持转换的类型:

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

具体请查看 官方文档

原文地址:https://www.cnblogs.com/chenqionghe/p/12268895.html