我用过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/