Zend framework 不转义setAttrib()方法(Zend_形式)

Zend framework 不转义setAttrib()方法(Zend_形式),zend-framework,zend-form,Zend Framework,Zend Form,我想向action controller中的某些表单元素添加一个属性,我可以这样做: $form->element_name->setAttrib('description', '<a href="/controller/action">Anchor</a>'); $form->element\u name->setAttrib('description',''); 但是,在上面的示例中,第二个参数被转义。我想把它换掉。我该怎么做呢?您可能需要做一点,但通

我想向action controller中的某些表单元素添加一个属性,我可以这样做:

$form->element_name->setAttrib('description', '<a href="/controller/action">Anchor</a>');
$form->element\u name->setAttrib('description','');
但是,在上面的示例中,第二个参数被转义。我想把它换掉。我该怎么做呢?

您可能需要做一点,但通常

$element->setAttrib("escape", false);

应该有用。我现在用它来避免转义
Zend\u Form\u Element\u MultiCheckbox
子类中的内容。在Decorator摘要中有一个
setEscape
方法,我相信这个方法是有标志的,但是文档不清楚(正如“增强”请求所表明的那样)。

您可以使用
$Decorator->setEscape(false)。重新设置它,就像
$descriptionDEcorator=$element->getDecorator('Description')

我在装饰器上设置了它,问题是如果我在控制器中设置了描述,它仍然会被转义。在表单文件中,它可以工作,但是描述会根据请求参数的不同而变化,因此我必须在控制器中设置它。我建议检查是否在表单的init()方法之外的任何地方更改装饰器。看起来您设置了转义,然后在某个地方设置了不同的装饰器。