多个复选框保存到DB 1或0

时间:2017-07-05 06:56:47

标签: laravel checkbox laravel-blade

创建多个问题复选框,我需要将两个可能的情况1或0发送到数据库。但是,它总是将我点击的最后一个发送为1所有其他0.所以例如,如果用户点击/检查第一个和最后一个我想发送到数据库,1和另外两个未经检查0。 / p>

控制器

<?php

public function create($request)
{
    foreach ($request['options'] as $key => $option) {
        Answer::create([
            'question_id' => $this->get(),
            'text' => $option,
            'correct' => $request['correct'] == $key ? 1 : 0
        ]);
    }
}

查看

@for($i = 1; $i<=4; $i++)
    <div class="form-group {{ $errors->has('options.'.$i) ? ' has-error': '' }}" id="option{{ $i }}">
        <div class="checkbox col-xs-2 control-label" style="margin-top: -2px">
            <label>
                <input id="cc" type="checkbox" name="correct" value="{{$i}}" {{ $i==1 ? 'checked' : '' }} >
            <!--
            {!! Form::hidden('correct',0) !!}
            {!! Form::checkbox('correct',1,false) !!}
            -->
            </label>
        </div>
        <div class="col-xs-8">
            <input type="text" name="options[{{ $i }}]" value="{{ old('options.'.$i) }}"
                   class="form-control" placeholder="@lang('general.option') {{ $i }}">
            @if($errors->has('options.'.$i))
                <div class="col-xs-12"></div>
                <span class="help-block">
                    <strong>{{ $errors->first('options.'.$i) }}</strong>
                </span>
            @endif
        </div>
    </div>
@endfor

1 个答案:

答案 0 :(得分:0)

要么为复选框提及控件数组,如下所示

 <input  id="cc" type="checkbox" name="correct[]" value="{{$i}}" {{ $i==1 ? 'checked' : '' }}  >

name="correct" 更改为 name="correct[]"

OR

使用增量变量(如

)为每个复选框指定不同的名称

name="correct" name="correct_".$i