在读取数据库的相关日期的时候我遇到了这样这个错误:

这个问题大概描述的就是,函数输入数据类型错误。原来thinkphp在从数据库调用时间的时候就自作聪明的加上了一个时间戳转换函数,目的在于将int时间戳类型的时间转换成0000-00-00这种类型,本来是好意,但是我的的数据在数据表里的类型就是0000-00-00(Y-m-d)类型的呀,thinkphp在强制执行函数的时候当然就会有这样的报错出现,因为函数期望的是传入int类型呀。
看网上有说可以在database里面设置:
'datetime_format' => false,
来关闭这个自作聪明的函数,但是我的thinkphp版本比较老所以还不支持关闭。于是想要解决这个问题就只好在数据存入数据表的时候就把它设置为int类型,具体就是将create_time和update_time的结构类型改为int,然后把相应模型的:
protected $autoWriteTimestamp = 'datetime';
改成:
protected $autoWriteTimestamp = true;
这样数据就迎合了thinkphp自作聪明的函数了,问题解决。
在使用ThinkPHP框架时遇到数据库日期字段类型不匹配导致的错误。原因为框架自动进行时间戳转换,针对非时间戳类型数据报错。通过调整数据库字段类型及模型配置,成功解决该问题。
5625

被折叠的 条评论
为什么被折叠?



