zend-framework - Zend Form addFilter StripTags 不剥离标签

标签 zend-framework zend-form

我需要一些帮助来清理 Zend_Form 并向元素添加过滤器。现在我的印象是,当您向表单添加过滤器时,发布表单时,过滤器将作为 Controller 中调度的一部分执行。

然而,当我测试我的表单时,令我惊恐的是,过滤器 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是否应该过滤,如果可以的话为什么不呢?我在这里缺少什么。

最佳答案

您没有发布有关如何在调用 isValid 后访问数据的代码。 IIRC 仅当您通过 $form->getValue('someElement') 或类似方式访问数据时,过滤器才会生效。

关于zend-framework - Zend Form addFilter StripTags 不剥离标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1121629/

相关文章:

zend-framework - 使用 Zend_Form 登录的典型问题

php - 禅德 : setBelongsTo no working right

php - 使用 Zend 框架获取页面内容

zend-framework - Zend_Auth 的多个实例

php - zf2 mvc 事件监听器或策略

zend-framework - zend 表单电子邮件验证

php - Zend multi Checkbox 元素的单个错误消息而不是多个