gpt4 book ai didi

zend-framework - Zend Framework InArray 验证器数组语法

转载 作者:行者123 更新时间:2023-12-04 06:48:59 26 4
gpt4 key购买 nike

我的目标是验证 URL 中传递的参数,因此我创建了一个验证方法,其中包含要运行的验证器列表,如下所示:

$validators = array(
'number' => array(
'digits',
'presence' => 'required',
'messages' => array(
"%value%' is not a valid number.",
),
),
'country' => array(
'presence' => 'required',
'InArray' => array('haystack' => array('USA', 'CAN', 'AUS', 'JPN')),
'messages' => array(
"'%value%' is not a valid country code.",
),
),
// etc.
);

$valid = new Zend_Filter_Input(array(), $validators, $data);
return $valid->isValid()

问题是“InArray”验证器什么都不做。它不会引发任何错误,它只是不起作用。我假设我的语法错误。

“InArray”验证器的正确语法是什么?

最佳答案

要将额外的规则和属性传递给与 Zend_Filter_Input 一起使用的验证器,请创建对象的具体实例并将其设置为您的验证器,如下所示:

    $validators = array(
'number' => array(
'digits',
'presence' => 'required',
'messages' => array(
"%value%' is not a valid number.",
),
),
'country' => array(
new Zend_Validate_InArray(
array('haystack' => array('USA', 'CAN', 'AUS', 'JPN'))
),
'presence' => 'required',
'messages' => array(
"'%value%' is not a valid country code.",
),
),
// etc.
);

你必须这样做的原因是因为没有过滤器 metacommands用于在使用 InArray 验证器时设置大海捞针。有一些基本的元命令适用于许多验证器,但 haystack 不是其中之一。

要指定 haystack,直接使用 require 选项创建一个新的 Zend_Validate_InArray 对象,并将该验证器传递给给 Zend_Filter_Input 的验证器数组。

关于zend-framework - Zend Framework InArray 验证器数组语法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11959272/

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