gpt4 book ai didi

php - 如何从 Respect\Validation 获取验证错误消息?

转载 作者:可可西里 更新时间:2023-11-01 01:04:56 43 4
gpt4 key购买 nike

我一直在使用Respect Validation用于表单验证

$app->post('/', function () use ($app) {

$validator = v::key('name', v::string()->notEmpty())
->key('email', v::email()->notEmpty())
->key('message', v::string()->notEmpty());

$errors = array();

try{
$validator->assert($_POST);
} catch (\InvalidArgumentException $e) {
$errors = $e->findMessages(array(
'notEmpty' => '{{name}} is required',
'email' => '{{name}} must be a valid email'
));
}

if ($validator->validate($_POST)) {
// do stuff

$app->redirect('/');

} else {

$app->render('index.php', array('field_errors' => array_values($errors)));

}
});

遍历 array_values($errors) 会给我:

"" is required
email must be a valid email

我需要这样的东西:

name is required
email must be a valid email
message is required

应该如何使用 Respect Validation 完成

最佳答案

消息在那里,但您的 findMessages 查找正在搜索 notEmptyemail

您在 $errors 中实际拥有的是:

Array
(
[0] =>
[1] => email must be a valid email
)

$errors[0] 是您对未找到的 notEmpty 的查找。
$errors[1] 是您对找到的 email 的查找。

如果您更改它以查找有问题的字段 nameemailmessage:

    $errors = $e->findMessages(array(
'name' => '{{name}} is required',
'email' => '{{name}} must be a valid email',
'message' => '{{name}} is required'
));

然后你会得到想要的结果:

Array
(
[0] => name is required
[1] => email must be a valid email
[2] => message is required
)

请原谅我的延迟回复我纯粹是偶然发现的,如果向官方请求支持,你会发现更快的结果Respect\Validation issue tracker反而。这也是您提出任何改进建议的理想平台,以帮助避免您遇到的问题。您会发现 Respect 团队热心、友好并且乐于助人。

n快乐!

关于php - 如何从 Respect\Validation 获取验证错误消息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13417649/

43 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com