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

 3213

下面给大家介绍关于最新版ThinkORM对于时间字段的调整,希望对需要的朋友有所帮助!


关于最新版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']


本文网址:https://www.zztuku.com/detail-8799.html
站长图库 - 关于最新版ThinkORM对于时间字段的调整
申明:如有侵犯,请 联系我们 删除。

评论(0)条

您还没有登录,请 登录 后发表评论!

提示:请勿发布广告垃圾评论,否则封号处理!!

    编辑推荐