尊重验证无法验证数组项
Respect validation not able to validate array items
我在我的 php 应用程序“https://respect-validation.readthedocs.io/en/1.1/rules/Each/”中使用来自此来源的尊重内置验证。我通过 ajax 调用 php 应用程序代码传递数据,例如
print_r($itemsArray);
Array
(
[0] => Array
(
[itemName] => apple
)
[1] => Array
(
[itemName] => banana
)
[2] => Array
(
[itemName] => cherry
)
)
我已将验证应用于 php 代码端的以下字段。
$fullName = $_REQUEST['fullName'];
$email = $_REQUEST['email'];
$phoneNumber = $_REQUEST['phoneNumber'];
$age = $_REQUEST['age'];
$itemsArray = $_REQUEST['itemsArray'];
try
{
v::key('fullName', v::notEmpty()->setTemplate("Full Name: Required field"))
->key('fullName', v::alpha()->setTemplate("Full Name: Alphabets only"))
....
....
->key('itemsArray', v::arrayVal()->each(v::alpha())->setTemplate("Item must contain Alphabets"))
->assert(['fullName' => $fullName, 'email' => $email, 'phoneNumber' => $phoneNumber, 'age' => $age, 'itemsArray' => $itemsArray ]);
}
catch(NestedValidationException $e)
{
$errorMessage = $e->getMessages();
}
所有应用于全名、电子邮件、电话号码和年龄等字段的验证都运行良好。唯一的问题是应用于此数组的 itemsArray 键(验证规则)。尽管根据验证规则 v::alpha() 这些项目是正确的,但它显示上述项目的错误消息。它还会抛出 4 次验证消息而不是 3 次。下面是苹果、香蕉和樱桃这三个项目的输出。
Array
(
[0] => Item must contain Alphabets
[1] => Item must contain Alphabets
[2] => Item must contain Alphabets
[3] => Item must contain Alphabets
)
我无法跟踪问题。请帮助!!!
你可以这样实现,请试试
->key('itemsArray', v::arrayVal()->each( v::key('itemName', v::alpha()))
我在我的 php 应用程序“https://respect-validation.readthedocs.io/en/1.1/rules/Each/”中使用来自此来源的尊重内置验证。我通过 ajax 调用 php 应用程序代码传递数据,例如
print_r($itemsArray);
Array
(
[0] => Array
(
[itemName] => apple
)
[1] => Array
(
[itemName] => banana
)
[2] => Array
(
[itemName] => cherry
)
)
我已将验证应用于 php 代码端的以下字段。
$fullName = $_REQUEST['fullName'];
$email = $_REQUEST['email'];
$phoneNumber = $_REQUEST['phoneNumber'];
$age = $_REQUEST['age'];
$itemsArray = $_REQUEST['itemsArray'];
try
{
v::key('fullName', v::notEmpty()->setTemplate("Full Name: Required field"))
->key('fullName', v::alpha()->setTemplate("Full Name: Alphabets only"))
....
....
->key('itemsArray', v::arrayVal()->each(v::alpha())->setTemplate("Item must contain Alphabets"))
->assert(['fullName' => $fullName, 'email' => $email, 'phoneNumber' => $phoneNumber, 'age' => $age, 'itemsArray' => $itemsArray ]);
}
catch(NestedValidationException $e)
{
$errorMessage = $e->getMessages();
}
所有应用于全名、电子邮件、电话号码和年龄等字段的验证都运行良好。唯一的问题是应用于此数组的 itemsArray 键(验证规则)。尽管根据验证规则 v::alpha() 这些项目是正确的,但它显示上述项目的错误消息。它还会抛出 4 次验证消息而不是 3 次。下面是苹果、香蕉和樱桃这三个项目的输出。
Array
(
[0] => Item must contain Alphabets
[1] => Item must contain Alphabets
[2] => Item must contain Alphabets
[3] => Item must contain Alphabets
)
我无法跟踪问题。请帮助!!!
你可以这样实现,请试试
->key('itemsArray', v::arrayVal()->each( v::key('itemName', v::alpha()))