如何在 Zend 中验证多维数组?

发布于 2024-08-18 11:28:53 字数 810 浏览 7 评论 0原文

我想知道使用 Zend_ValidateZend_FilterInput 验证多维数组的最佳方法是什么。

这是我当前的代码:

$filters = array(
    'symbol'        => array('StripTags', 'StringTrim'),
    'mode'          => array('StripTags', 'StringTrim'),
);
$validators = array(
    'symbol'        => array('NotEmpty'),
    'mode'          => array('NotEmpty'),
);


$input = new Zend_Filter_Input($filters, $validators, $_POST);

我想在此处附加一个数组,例如 name[] 数组(发布具有两个/三个名称的数组)。

这是一个示例 $_POST 数组:

array(
    'symbol' => 'SD34G',
    'mode'   => 'back',
    'name'   => array(
                       0 => 'Name A',
                       1 => 'Name B',
                       2 => 'Name C'
                )
)

I am wondering what is the best way to validate multidimensional array using Zend_Validate with Zend_FilterInput.

Here is my current code:

$filters = array(
    'symbol'        => array('StripTags', 'StringTrim'),
    'mode'          => array('StripTags', 'StringTrim'),
);
$validators = array(
    'symbol'        => array('NotEmpty'),
    'mode'          => array('NotEmpty'),
);


$input = new Zend_Filter_Input($filters, $validators, $_POST);

I would like to append here an array, for example name[] array (posting an array with two/three names).

Here is a sample $_POST array:

array(
    'symbol' => 'SD34G',
    'mode'   => 'back',
    'name'   => array(
                       0 => 'Name A',
                       1 => 'Name B',
                       2 => 'Name C'
                )
)

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

暗恋未遂 2024-08-25 11:28:53

好的,我发现我应该使用与字符串相同的方法对数组执行此操作。

Zend_Filter_Input 检查 value 是否为数组,并执行 foreach 验证其每个元素。

所以....

$filters = array(
    'symbol'        => array('StripTags', 'StringTrim'),
    'mode'          => array('StripTags', 'StringTrim'),
    'name'          => array('StripTags', 'StringTrim'),
);
$validators = array(
    'symbol'        => array('NotEmpty'),
    'mode'          => array('NotEmpty'),
    'name'          => array('NotEmpty'),
);

;-)

Ok, I found that I should do it for an array with the same method as for string.

Zend_Filter_Input checks if value is array and does foreach with validating every its element.

So....

$filters = array(
    'symbol'        => array('StripTags', 'StringTrim'),
    'mode'          => array('StripTags', 'StringTrim'),
    'name'          => array('StripTags', 'StringTrim'),
);
$validators = array(
    'symbol'        => array('NotEmpty'),
    'mode'          => array('NotEmpty'),
    'name'          => array('NotEmpty'),
);

;-)

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文