gpt4 book ai didi

php - 从 Zend InputFilter 检索错误消息

转载 作者:行者123 更新时间:2023-12-02 05:23:58 26 4
gpt4 key购买 nike

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

$email = new Input('email');
$email->getValidatorChain()
->addValidator(new Validator\EmailAddress());

$password = new Input('name');
$password->getValidatorChain()
->addValidator(new Validator\StringLength(1));

$inputFilter = new InputFilter();
$inputFilter->add($email)
->add($password)
->setData($_POST);

if ($inputFilter->isValid()) {

// do stuff

$app->redirect('/');

} else {

$field_errors = array();

foreach ($inputFilter->getInvalidInput() as $field => $error) {
foreach ($error->getMessages() as $message) {
$field_errors[] = str_replace('Value', ucfirst($field), $message);
}
}

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

}
});

我目前使用 Slim Framework 和 Zend InputFilter 获得上述代码。但是,我想检索错误消息。我一直收到“值(value) ....”,所以我对它们进行了 str_replace 以获取 Email is not a valid email,如下所示:

        $field_errors = array();

foreach ($inputFilter->getInvalidInput() as $field => $error) {
foreach ($error->getMessages() as $message) {
$field_errors[] = str_replace('Value', ucfirst($field), $message);
}
}

这是从 Zend InputFilter 获取错误消息的正确方法还是有其他方法?

最佳答案

你只需要调用 $inputFilter->getMessages() 来获取键控数组:

array(
'input' -> 'message',
'inputtwo' => 'anothermessage',
);

这在内部为您使用了 getInvalidInput(),因此不需要那些嵌套的 foreach 循环,只需调用 getMessages() 就可以了。

关于php - 从 Zend InputFilter 检索错误消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13415866/

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