ThinkPHP5开发连载五十三之模型-类型转换

上一篇文章讲解“模型-软删除”,本篇文章讲解“模型-类型转换”。

支持给字段设置类型自动转换,会在写入和读取的时候自动进行类型转换处理,例如:

1. 类型转换使用

新建User模型,并在User模型中设置类型转换

新建Index控制器,并新建casting方法

浏览器访问

查看数据库

2. 支持的类型

数据库查询默认取出来的数据都是字符串类型,如果需要转换为其他的类型,需要设置,支持的类型包括如下类型:

1)integer

设置为integer(整型)后,该字段写入和输出的时候都会自动转换为整型。

2)float

该字段的值写入和输出的时候自动转换为浮点型。

3)boolean

该字段的值写入和输出的时候自动转换为布尔型。

4)array

如果设置为强制转换为array类型,系统会自动把数组编码为json格式字符串写入数据库,取出来的时候会自动解码。

5)object

该字段的值在写入的时候会自动编码为json字符串,输出的时候会自动转换为stdclass对象。

6)serialize

指定为序列化类型的话,数据会自动序列化写入,并且在读取的时候自动反序列化。

7)json

指定为json类型的话,数据会自动json_encode写入,并且在读取的时候自动json_decode处理。

8)timestamp

指定为时间戳字段类型的话,该字段的值在写入时候会自动使用strtotime生成对应的时间戳,输出的时候会自动转换为dateFormat属性定义的时间字符串格式,默认的格式为Y-m-d H:i:s,如果希望改变其他格式,可以定义如下:

或者在类型转换定义的时候使用:

修改User模型后,浏览器访问Index控制器的casting方法:

浏览器访问:

查看数据库:

9)datetime

和timestamp类似,区别在于写入和读取数据的时候都会自动处理成时间字符串Y-m-d H:i:s的格式。

ThinkPHP5连载为卓象程序员原创,转载请联系卓象程序员

关注卓象程序员,定期发布技术文章

下一篇讲解“模型-数据库完成”

  • 发表于:
  • 原文链接:https://kuaibao.qq.com/s/20180920A13C4U00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。

扫码关注云+社区

领取腾讯云代金券