构建表单中的Laravel checkobx不会更新值

时间:2016-04-22 17:21:02

标签: php forms laravel checkbox builder

在Laravel我正在使用表单构建器。我的表单与创建和更新帖子相同。在该表单中,我创建了用于在帖子中启用/禁用评论的复选框。默认值为1(已选中)。当我创建新帖子时,复选框工作正常。另外,当我加载编辑页面时,如果在数据库中发布了评论,页面加载复选框,如果在帖子中被禁用,则评论页面加载未选中框。问题是当我想编辑和更改它并更新帖子时。启用注释值不变。没有任何错误,其他表单字段中的更改值正确存储。列名是enable_comments - 布尔类型,这是我的表单构建器输入字段代码:

{!! Form::label('enable_comments') !!}
{!! Form::checkbox('enable_comments', $post->exists ? $post->enable_comments : 1, !$post->exists ? true : $post->enable_comments) !!}

请注意,创建帖子时一切正常。如果选中复选框,它将1存储在数据库中,如果不存在,则存储0.此外,它在编辑页面上显示正确。如果数据库中的“enable_comments”值为1,则在编辑页面上进行检查,如果为0,则取消选中复选框。

请帮忙。我错在哪里?这个逻辑中的问题在哪里?

1 个答案:

答案 0 :(得分:0)

只有当您取消选中此框时才会发生这种情况?如果未选中它,则不会返回值。将以下行添加到public function rules() { $this->merge(['enable_comments' => $this->input('enable_comments', 0),]); 类将默认该值,以便每次都存在,无论其是否已选中

{{1}}