我正在将Laravel框架v5.5与MySQL数据库一起使用。我正在尝试创建/更新记录,但出现以下错误。在我的案例中发布的列的格式设置为DATE,并且可以为空。但是,如果我尝试使用null更新该列,则会引发错误。
请求数据:
{"id":4776,"name":"test","published":null}
错误:
"message": "SQLSTATE[22007]: Invalid datetime format: 1292 Incorrect date value: '' for column 'published' at row 1
我当然可以删除在MySQL处理之前发布的参数,但是随后我必须在许多地方对此参数以及其他参数进行处理。另一个选择是禁用严格模式,但我宁愿不这样做。还有其他选择吗?
答案 0 :(得分:0)
如果您收到一个null
值,则必须将其原样传播到Eloquent层,或者在到达该值之前将其从参数中清除掉。
虽然数据库NULL
是{em}可以为DATETIME
的{{1}}列的有效值,但空字符串不是。从NULL
到空字符串的任何形式的转换都会在这里给您带来麻烦。
除非您特别需要将字段清空,否则清理空参数通常是个好主意。