Php 获取FormErrors Helper中Zend_Form_元素的名称

Php 获取FormErrors Helper中Zend_Form_元素的名称,php,zend-framework,zend-form,zend-form-element,view-helpers,Php,Zend Framework,Zend Form,Zend Form Element,View Helpers,我有一个MyNameSpace\u View\u Helper\u FormErrors类,它扩展了标准FormErrors类,并为ErrorMessage本身设置HTML 我必须根据引发错误的元素的名称为errormessage容器提供一个id <ul id='errormsg_$ELEMENTNAME'> 看来视图\u Helper\u FormErrors没有指向元素的“链接”,那么有没有办法获取引发错误的元素的名称或对象?您可能在谈论错误装饰器。但是,还有一个额外的Fo

我有一个
MyNameSpace\u View\u Helper\u FormErrors
类,它扩展了标准FormErrors类,并为ErrorMessage本身设置HTML

我必须根据引发错误的元素的名称为errormessage容器提供一个id

<ul id='errormsg_$ELEMENTNAME'>

看来
视图\u Helper\u FormErrors
没有指向元素的“链接”,那么有没有办法获取引发错误的元素的名称或对象?

您可能在谈论错误装饰器。但是,还有一个额外的FormErrors装饰程序,用于呈现表单的所有错误(而不是单个元素)

在元素装饰器中,您可以通过
$this->getElement()访问元素


在元素视图脚本中,您可以通过

访问元素,我还必须覆盖Zend\u Form\u Decorator\u错误以将元素提供给视图帮助器

请参阅Zend_Form_Decorator_错误行60:

$errors    = $view->formErrors($errors, $this->getOptions());
将更改为:

$errors    = $view->formErrors($errors, $this->getOptions(), $this->getElement());

坦克到@venimus,如果没有他的回答,我就不会查看装饰器:-)

错误装饰器是通过Zend\u View\u Helper\u FormErrors渲染的。但别担心,你会让我找到解决这个问题的方法。见下面我的答案。