【问题标题】:Validating sub-arrays with Respect/Validation?使用尊重/验证验证子数组?
【发布时间】:2017-03-23 12:47:42
【问题描述】:

我已成功使用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

也许我刚刚监督了如何做到这一点。感谢您的宝贵时间。

干杯, 帕特里克

【问题讨论】:

    标签: php arrays validation respect-validation


    【解决方案1】:

    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');
    

    干杯, 帕特里克

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-06-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多