SQLSTATE [22007]: Invalid datetime format: 1292 Incorrect

问答:Laravel 7 的 ISO-8601 Timestamp 新格式与 Seeding 灌数据的问题

Illuminate\Database\QueryException
SQLSTATE[22007]: Invalid datetime format: 1292 Incorrect datetime value

SQLSTATE[22007]: Invalid datetime format: 1292 Incorrect datetime value

Laravel 7 中使用faker填充数据,出现日期自动变成ISO-8601的格式,就是生成的日期都是类似于:

2006-12-23T19:25:22.000000Z

这样的形式。
通过修改serializeDate函数可以修复这个错误。

protected function serializeDate(DateTimeInterface $date)
{
    return $date->format('Y-m-d H:i:s');
}

serializeDate 这个函数在:

\vendor\laravel\framework\src\Illuminate\Database\Eloquent\Concerns

SQLSTATE[22007]: Invalid datetime format: 1292 Incorrect datetime value

使用查找方式,定位这个文件。
修改了这个函数就可以正常填充数据了。

SQLSTATE[22007]: Invalid datetime format: 1292 Incorrect datetime value

本作品采用《CC 协议》,转载必须注明作者和本文链接
《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
讨论数量: 1

file 我这种的也出现了如下问题

file 时区也确认了

file

file 不知道要怎么解决

4年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!