是否可以删除Zend Framework默认添加到每个表单元素的'id'属性?
我查看了文档,但似乎无法找到这个相当直截了当的问题的答案。
除了setOption之外,还有更简洁的方法吗?
$submit = new Zend_Form_Element_Submit('submit');
$submit->setRequired(FALSE)
->setIgnore(TRUE)
->setDecorators($this->elementDecorators)
->setOptions(array('id' => ''));
答案 0 :(得分:0)
解决方案是使用您自己的View Helper覆盖Zend_View_Helper_Form
。
但是真诚地,不要过多关注表单中的这个id属性,你迟早会需要这个id(如果你使用的是Javascript)并且性能提升(渲染页面)太小了被考虑在内。它甚至会导致性能下降,因为你要覆盖Helper。
如果您的目的不同而且您想要这样做,您需要编写自己的View Helper,如下所示:
class My_View_Helper_Form extends Zend_View_Helper_FormElement
{
public function form($name, $attribs = null, $content = false)
{
$info = $this->_getInfo($name, $content, $attribs);
extract($info);
$xhtml = '<form'
. $this->_htmlAttribs($attribs)
. '>';
if (false !== $content) {
$xhtml .= $content
. '</form>';
}
return $xhtml;
}
}
最后,您只需要使用插件加载器重载默认视图助手。 Read the manual了解有关插件加载程序的更多信息。