如何验证 laravel 中的复选框数组?

Posted

技术标签:

【中文标题】如何验证 laravel 中的复选框数组?【英文标题】:How do I validate a checkbox array in laravel? 【发布时间】:2020-06-26 04:42:45 【问题描述】:

我一直在尝试验证所有 10 个复选框数组项,但我似乎无法找到或理解如何使用 Laravel 验证器来验证复选框数组。 下面的代码是我的数组 html

<div id="CLAagree" style="display: none;">
    <div class="form-group form-check">
        <div class="col-sm-2">
            <div class="checkbox checkbox-green ck-button">
                <input type="checkbox" class="form-check-input" oninput="this.className = ''" name="claAgree[]" id="CLAagreeCB1" onclick="saveOnboard()" >
            </div>
        </div>
    </div>

我已尝试获取有关此的所有信息,但由于某种原因,我似乎无法理解验证中的数组。 我知道添加“必需”会使输入成为必需,但我有 10 个,所以至少需要一个,但我需要 10 个。有没有人有任何选择?我只是在这一点上迷路了哈哈

$rules = array(
    "claAgree" => "required", 
    "claAgree.*" => "required",
);
$validation = Validator::make($request->all(),$rules);
if($validation->fails()) return back()->with('error',$validation->messages()->first());

Here is a link to show how the array is posted

【问题讨论】:

laravel.com/docs/5.4/validation#conditionally-adding-rules ,你可以在这里查看定义如何验证数组 【参考方案1】:

您可以这样做,检查您请求的数组名称 (claAgree.*.claAgree), 然后定义输入值,如果相同,则可以使用相同的值

 $rules = array(
        "claAgree" => "required", 
        "claAgree.*.claAgree" => "required",
    );

    $validation = Validator::make($request->all(),$rules);
    if($validation->fails()) return back()->with('error',$validation->messages()->first());

【讨论】:

当我尝试我得到这个错误。 "claAgree.0.claAgree 字段是必需的。"

以上是关于如何验证 laravel 中的复选框数组?的主要内容,如果未能解决你的问题,请参考以下文章

Laravel 对名为数组的复选框进行验证

当当前输入等于数组内的值时,Laravel 验证 required_if(带有输入文本的复选框)

验证失败后的 Laravel 复选框状态

如何使用 Laravel 和 Ajax 从数据库数组中检查复选框

如何验证是不是在laravel中选中了复选框?

如何在 laravel 身份验证期间附加到用户创建多个复选框