首页 > PHP学习 > 关于最新版ThinkORM对于时间字段的调整

关于最新版ThinkORM对于时间字段的调整

时间:2022年7月8日 分类:PHP学习 浏览量:326
下面由thinkphp教程栏目给大家介绍关于最新版ThinkORM对于时间字段的调整,希望对需要的朋友有所帮助!

不少用户在升级6.0最新版本框架后出现了获取不到时间字段原始值的情况,这是因为think-orm库的一个最新调整导致的。

在最新的ThinkORM中,字段类型和时间字段的自动处理不再纳入获取器范畴,而是在查询到结果后的第一时间就进行了处理,避免以后每次调用数据的时候都要进行一次额外的检测和处理。而由于不再纳入获取器,所以导致无法获取这些字段的原始值,包括设置了类型转换的字段和自动时间处理字段。

时间字段的自动处理是框架提供的实现时间字段(包括create_time和update_time,支持自定义字段名)的自动写入和自动输出转换功能。

如果你需要获取时间字段的原始值,那么需要关闭自动时间字段处理功能,也就是设置autoWriteTimestamp属性为false,然后对时间字段自定义获取器接管时间字段的输出,并且记得一旦关闭自动时间字段处理,时间字段的数据写入必须手动写入。

如果你希望时间字段自动写入处理,但不希望进行自动格式化输出,可以设置dateFormat属性为false。如果在数据库配置文件中设置的话,应该如下设置:

// 自动写入时间戳字段
// true为自动识别类型 false关闭
// 字符串则明确指定时间字段类型 支持 int timestamp datetime date
'auto_timestamp'  => true,
 
// 时间字段取出后的默认时间格式
'datetime_format' => false,

think-orm升级到最新版本已经修正上述问题,但注意获取原始数据最好是用getOrigin方法替代getData方法,如果你需要在定义的获取器方法中读取原始的时间字段数据,应该用$this->origin[‘create_time’]而不是用 $data[‘create_time’]或者$this->data[‘create_time’]。

相关推荐:最新的10个thinkphp视频教程

觉得文章有用就打赏一下文章作者

微信扫一扫打赏

标签: