我有一个包含几个字段的注册表。其中一个看起来像这样:
$first_name = new Zend_Form_Element_Text('first_name');
$first_name ->setLabel("First name")
->setRequired(true)
->addFilter(new Zend_Filter_HtmlEntities());
我使用相同的表单来编辑用户的详细信息。 问题出在Zend_filter_HtmlEntities上。当我将表单的数据发送到数据库时,它完成了这项工作,它用他们的替代品替换了html特殊字符。 但是,当我初始化此表单并从数据库记录中提供默认值时,Zend_filter_HtmlEntities会再次过滤这些值,并且在输入字段中会出现一些垃圾。
例如,在名字输入字段中,而不是<b>Name, I get &lt;b&gt; Name
这意味着当使用默认值呈现表单时,将再次应用元素过滤器并且&lt;因为&amp; lt; :(
除了在将数据传递给表单之前重新格式化数据之外,是否有一个优雅的解决方案?
答案 0 :(得分:2)
添加Zend_Filter_HtmlEntities过滤器,我会完全避免。相反,我担心只有在将数据显示给用户时才转义html实体。