Laravel复选框始终保存为1

时间:2017-03-11 15:42:56

标签: laravel

表格中有复选框

{!! Form::checkbox('is_explicit_content', '1', $post->is_explicit_content, ['id' => 'is_explicit_content']); !!} 
{!! Form::label('is_explicit_content', 'Explicit', ['class' => 'checkbox-label']) !!}

模型

class Post extends Model
{
    protected $fillable = [
        'text',
        'is_explicit_content'
    ];
}

但价值总是保存为1,我不明白为什么?如何解决?

1 个答案:

答案 0 :(得分:5)

当提交复选框时,它的值是给定的,但是如果它未被取消,则不会发送此类表单条目。

如果勾选以下内容并提交表单,则$_POST['foobar']设置为1

<input type='checkbox' name='foobar' value='1' />

如果您未加注,$_POST['foobar']将无法使用。如果你想拥有一个默认值,你需要在复选框之前有一个隐藏的输入。

<input type='hidden' name='foobar' value='0' />
<input type='checkbox' name='foobar' value='1' />

现在,如果您提交带有foobar未标记的表单,则$_POST['foobar']的值将为0