laravel - 如何验证至少有一个复选框被选中?

标签 laravel laravel-5 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>

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

最佳答案

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

下面的内容尚未经过测试 - 但类似下面的内容应该会对您有所帮助?

$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);
}
...

关于laravel - 如何验证至少有一个复选框被选中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37599293/

相关文章:

laravel - 如何在 Laravel 中使用两个 `with` ?

php - Laravel/PHP str_replace 函数中的单引号显示笑脸图像

php - Laravel Facebook 登录 - 无回调(本地主机)

php - required_without 不使用多个字段

php - 如何在 Laravel 的输入表单中跳过第一个零?

php - Laravel sainttum 检查用户是否经过身份验证

Laravel 路由 - 相对路径问题

logging - Laravel 每天记录消息/错误并明智地输入

laravel - undefined variable : errors in Laravel

laravel - laravel 6 中的时间验证规则 - 之后 |前