我有一个MyNameSpace_View_Helper_FormErrors
类,它扩展了标准的FormErrors类,并为ErrorMessage本身设置了HTML。
我必须根据抛出错误的元素的名称给errormessage容器一个id。
<ul id='errormsg_$ELEMENTNAME'>
似乎View_Helper_FormErrors
没有与元素“链接”,所以有没有办法获取元素的名称或对象,从而引发错误?
答案 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,没有他的回答我不会看装饰师: - )