我有一个MyNameSpace_View_Helper_FormErrors
扩展标准 FormErrors 类并为 ErrorMessage 本身设置 HTML 的类。
我必须根据引发错误的元素的名称为 errormessage 容器提供一个 id。
<ul id='errormsg_$ELEMENTNAME'>
似乎View_Helper_FormErrors
没有指向元素的“链接”,那么有什么方法可以获取引发错误的元素的名称或对象?
我有一个MyNameSpace_View_Helper_FormErrors
扩展标准 FormErrors 类并为 ErrorMessage 本身设置 HTML 的类。
我必须根据引发错误的元素的名称为 errormessage 容器提供一个 id。
<ul id='errormsg_$ELEMENTNAME'>
似乎View_Helper_FormErrors
没有指向元素的“链接”,那么有什么方法可以获取引发错误的元素的名称或对象?
您可能正在谈论 Errors装饰器。但是,还有一个额外的 FormErrors 装饰器可以呈现表单的所有错误(不是单个元素)
在元素装饰器中,您可以通过$this->getElement()
在元素 ViewScripts 中,您可以通过<? $this->element ?>
我还必须覆盖 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 的坦克,如果没有他的回答,我不会在装饰器中查看 :-)