php - 使用尊重/验证来验证子数组?

标签 php arrays validation respect-validation

我用过Respect/Validation成功解决了我普遍关心的问题。

但现在我正在验证某种表单输入,用户可以在其中选中多个复选框,并且数据通过数组发送。 表格看起来像这样:

<form method="post" action="">
    <input type="text" name="firstname">
    <input type="text" name="lastname">

    <input type="checkbox" name="options[]" value="1">
    <input type="checkbox" name="options[]" value="2">
    <input type="checkbox" name="options[]" value="3">

    <button type="submit">Send</button>
</form>

所以,我的后期数据将如下所示:

Array
(
    [firstname] => Peter
    [lastname] => Parker
    [options] => Array
        (
            [0] => 1
            [1] => 3
        )
)

我已经构建了一个有效的验证规则:

<?php
//used in class, so "use Respect\Validation\Validator AS v;"

$validReq = v::create()
    ->key('firstname', v::stringType()->length(1, 32))
    ->key('lastname', v::stringType()->length(1, 32))
    ->key('options', v::optional(v::arrayType()))
    ->setName('valid request');

我现在的问题是,如何使用(例如)v::intVal() 验证数组options

也许我刚刚监督了如何实现这一点。感谢您抽出时间。

干杯, 帕特里克

最佳答案

alganet over at github 的帮助下解决.

这可以使用 each() 来完成:

<?php    
$validReq = v::create()
    ->key('firstname', v::stringType()->length(1, 32))
    ->key('lastname', v::stringType()->length(1, 32))
    ->key('options', v::optional(v::arrayType()->each(v::intVal())))
    ->setName('valid request');

干杯, 帕特里克

关于php - 使用尊重/验证来验证子数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40511540/

相关文章:

ios - 排序数组导致错误的数据显示到单元格中

javascript - AngularJS 验证表单数组长度

php - 在 PHP 中增加 max_execution_time?

php - 表单提交后 Codeigniter 4 错误 404 路由有问题

PHP:glob() 与列出特定文件相比慢了多少?

java - 我如何获得正确的输出来打印数组中正数、负数和零数的分数?

PHP - 发送带附件的电子邮件不显示邮件内容

javascript - 如何更改从数组中提取时间间隔的innerHTML?

javascript - 使用 Javascript 检查测验答案的最安全方法

ruby - 检查文本输入是否为空,如果是,则不要转换为 float