我需要一些帮助来清理 Zend_Form 并为元素添加过滤器。现在我的印象是,当您向表单添加过滤器时,当表单发布时,该过滤器在控制器中作为调度的一部分执行。
然而,当我惊恐地测试我的表单时,过滤器StripTags似乎没有运行,我正在获取数据中带有 HTML 标记的数据。
我的表单元素看起来像这样。
$address1 = new Zend_Form_Element_Textarea('address1');
$address1->addFilter('StripTags')
->addFilter('StringTrim')
->setAttrib('cols', 30)
->setAttrib('rows', 5)
->removeDecorator('DtDdWrapper')
->removeDecorator('label')
->removeDecorator('HtmlTag')
但是,如果我在文本区域中放入一些带有 html 标签的数据,然后使用检查表单是否有效
$formData = $this->_request->getPost();
if($form->isValid($formData){
...
数据与其中的标签一起返回。仅当我通过strip_tags()函数传递数据时才将其删除。
我想我的问题是StipTags过滤器是否应该过滤,为什么不过滤?我在这里想念什么。