【发布时间】:2016-04-22 17:21:01
【问题描述】:
在 Laravel 中,我使用的是表单生成器。我的表单与创建和更新帖子相同。在该表单中,我创建了用于在帖子中启用/禁用 cmets 的复选框。默认值为 1(选中)。当我创建新帖子时,复选框工作正常。此外,当我加载编辑页面时,如果在数据库中启用评论,页面加载复选框,如果在帖子中禁用 cmets 页面加载未选中框。问题是当我想编辑和更改它并更新帖子时。启用 cmets 值不变。没有任何错误,并且来自其他表单字段的更改值被正确存储。列名是 enable_cmets - boolean 类型,这是我的表单生成器输入字段代码:
{!! Form::label('enable_comments') !!}
{!! Form::checkbox('enable_comments', $post->exists ? $post->enable_comments : 1, !$post->exists ? true : $post->enable_comments) !!}
请注意,创建帖子时一切正常。如果选中复选框,则在数据库中存储 1,如果不是,则存储 0。此外,它在编辑页面上显示正确。如果数据库中的“enable_cmets”值为1,则在编辑页面上选中,如果为0,则不选中复选框。
请帮忙。我哪里做错了?这个逻辑哪里出了问题?
【问题讨论】:
-
我明白,如果帖子存在,第三个参数是 1 或 0,但我需要 true 或 false。
标签: php forms laravel checkbox builder