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

时间:2010-01-20 12:11:01

标签: php zend-framework zend-validate zend-filter

我想知道使用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'
                )
)

1 个答案:

答案 0 :(得分:2)

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

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'),
);

- )