SQLSTATE [22007]: Invalid datetime format: 1292 Incorrect

andu發表於2020-06-04

問答: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 協議》,轉載必須註明作者和本文連結

相關文章