在FormErrors Helper中获取Zend_Form_Element的名称

时间:2011-06-14 22:22:10

标签: php zend-framework zend-form zend-form-element view-helpers

我有一个MyNameSpace_View_Helper_FormErrors类,它扩展了标准的FormErrors类,并为ErrorMessage本身设置了HTML。

我必须根据抛出错误的元素的名称给errormessage容器一个id。

<ul id='errormsg_$ELEMENTNAME'>

似乎View_Helper_FormErrors没有与元素“链接”,所以有没有办法获取元素的名称或对象,从而引发错误?

2 个答案:

答案 0 :(得分:1)

您可能正在谈论错误装饰器。但是有一些额外的FormErrors装饰器可以呈现窗体的所有错误(不是单个元素)

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

访问该元素

在元素ViewScripts中,您可以通过<? $this->element ?>

访问该元素

答案 1 :(得分:1)

我还必须覆盖Zend_Form_Decorator_Error以将元素提供给View Helper。

参见Zend_Form_Decorator_Error第60行:

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

将更改为:

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

坦克到@venimus,没有他的回答我不会看装饰师: - )