将数组作为值传递给Zend_Filter

时间:2011-11-24 04:40:28

标签: zend-framework

我正在尝试使用Zend_Filter_Interface来内爆数组。

这是我的简化测试用例。

class My_Filter_Implode implements Zend_Filter_Interface
{
    public function filter($value)
    {
        return implode(',', $value);
    }
}

输入将是一个数组。

$rawInput = array('items' => array('a', 'b', 'c'));

$validators = array(
    'items' => array()
)

$filters = array(
    'items' => 'Implode'
);

$filterInput = new Zend_Filter_Input($filters, $validators, $rawInput, $options);

我希望过滤器将数组('a','b','c')转换为字符串'a,b,c'。而是将过滤器应用于数组中的每个项目。如何将传递给filter()的值作为数组传递?

1 个答案:

答案 0 :(得分:1)

您的过滤器似乎没问题。问题出在Zend_Filter_Input,它将数组中的值单独传递给过滤器和验证器。

有一个关于这个问题的讨论主题,以及一些可能的解决方法:http://zend-framework-community.634137.n4.nabble.com/Zend-Filter-Input-and-Arrays-td653511.html

希望有所帮助,