模型工厂填充返回的 created_at 按照教程填入时间,允许数据填充报插入的时间格式错误
Laravel版本:7.12.0
问题:
按照教程的做法在数组传入$facker创建的时间, 运行 php artisan db:seed , Laravel 报插入失败. 通过比较发现是插入的时间被转换了. 让我觉得奇怪的是, email_verified_at 与 created_at 是相同的数据类型, email_verified_at 是没有被转换的.
之后我尝试 created_at 与 email_verified_at 传一样的值, 结果还是 created_at 被转换带时区的时间,而 email_verified_at不受影响. 希望有人帮忙指点一下, 一直纠结在这里.
表结构

模型代码

输出结果



关于 LearnKu
感谢@zengsp 的指点,参考自Laravel7/升级说明
补充说明一下解决方案
产生原因:Laravel 7 对日期序列化改动
解决方案: 在工厂模型对应的Model,重写serializeDate方法
需要具有复用性的话,可以创建性状( trait ),在性状实现截图的方法,需要修改的 Model use 即可。
希望对后面学习的人有帮助