我正在将带有FormData对象的数据发送到我的laravel后端,问题是我有一个复选框输入,这给我带来了麻烦,我的后端记录了以下错误消息:
SQLSTATE[22007]: Invalid datetime format: 1366 Incorrect integer value: 'true' for column 'isVisible' ...
在我的迁移中,isVisible字段被声明为布尔值:
$table->boolean('isVisible')->default(false);
如果我入侵有效负载并发送1而不是'true'或0而不是'false',那么我的Post条目将被成功创建。
有什么办法可以解决这个问题吗?
答案 0 :(得分:0)
在数据库之前发送
$isVisible === true || strtolower($isVisible) == 'true'
答案 1 :(得分:0)
Laravel为此提供了一个很好的解决方案:
$model->is_visible = $request->has('isVisible');
(如果未选中该复选框,则不会在$ request包中显示该复选框,因此“具有”功能将输出false。如果选中,则返回true(为布尔值)。