如何验证,至少检查了一个复选框?

时间:2016-06-02 18:13:10

标签: laravel laravel-5 laravel-5.2 laravel-validation

我有一个用于创建具有多个(多达一个愿望)可能答案的问题的表单。这是图片:

enter image description here

单个可能答案的代码:

<div class="input-group">

    {{-- Checkbox for the answer --}}
    <span class="input-group-addon">
        <input type="checkbox" name="answer[0][is_correct]" value="1">
    </span>

    {{-- Input field for the answer --}}
    <input type="text" class="form-control" name="answer[0][body]">

    {{-- . . . --}}

</div>

我需要验证,至少存在三个问题的答案,并且至少其中一个是正确的。我怎样才能做到这一点?

1 个答案:

答案 0 :(得分:3)

为了清楚起见,我会考虑将答案文本字段与答案复选框分开。

以下内容尚未经过测试 - 但以下内容应该会对您有所帮助吗?

$numAnswers = count($input->only('answers_text'));
$rules = [
    'answers_checked' => 'array|min:1|max:' . $numAnswers,
    'answers_text' => 'array|min:3|required',
    'answers_text.*' => 'required|string',
];

$v = Validator::make($input, $rules);    
if ($v->fails()) {
  return response()->json($v->errors(), 422);
}
...