繁体   English   中英

SQLSTATE [22007]:无效的日期时间格式:1366 不正确的 integer 值:“isVisible”列的“true”

[英]SQLSTATE[22007]: Invalid datetime format: 1366 Incorrect integer value: 'true' for column 'isVisible'

我正在使用 FormData object 将数据发送到我的 laravel 后端,问题是我有一个复选框输入,这给我带来了麻烦,我的后端记录了以下错误消息:

SQLSTATE[22007]: Invalid datetime format: 1366 Incorrect integer value: 'true' for column 'isVisible' ...

在我的迁移中,isVisible 字段被声明为 boolean:

$table->boolean('isVisible')->default(false);

如果我侵入有效负载并发送 1 而不是 'true' 或 0 而不是 'false' 我的帖子条目将成功创建。

知道如何解决这个问题吗?

在数据库之前发送这个

$isVisible === true || strtolower($isVisible) == 'true'

Laravel 对此有一个很好的解决方案:

$model->is_visible = $request->has('isVisible');

(如果未选中该复选框,它将不会出现在 $request 包中,因此“有”function 将 output 为 false。如果选中,则返回 true(作为布尔值)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM