上一篇文章讲解“模型-软删除”,本篇文章讲解“模型-类型转换”。
支持给字段设置类型自动转换,会在写入和读取的时候自动进行类型转换处理,例如:
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连载为卓象程序员原创,转载请联系卓象程序员
关注卓象程序员,定期发布技术文章
下一篇讲解“模型-数据库完成”
领取专属 10元无门槛券
私享最新 技术干货