Получить имя Zend_Form_Element в помощнике FormErrors - PullRequest
2 голосов
/ 15 июня 2011

У меня есть класс MyNameSpace_View_Helper_FormErrors, который расширяет стандартный класс FormErrors и устанавливает HTML для самого ErrorMessage.

Я должен присвоить контейнеру errormessage идентификатор, основанный на имени элемента, для которого выдается ошибка.

<ul id='errormsg_$ELEMENTNAME'>

Кажется, что View_Helper_FormErrors не имеет "ссылки" на Элемент, так есть ли способ получить имя или объект Элемента, который выдает ошибку?

Ответы [ 2 ]

1 голос
/ 15 июня 2011

Мне также придется перезаписать Zend_Form_Decorator_Error, чтобы передать элемент помощнику просмотра.

см. Zend_Form_Decorator_Error, строка 60:

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

изменится на:

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

Танки к @venimus, без его ответа я бы не заглянул в декоратор: -)

1 голос
/ 15 июня 2011

вы, вероятно, говорите об ошибках декоратор .Однако есть дополнительный декоратор FormErrors, который отображает все ошибки формы (не один элемент)

В элемент декораторов вы можете получить доступ к элементу с помощью $this->getElement()

вэлемент ViewScripts вы можете получить доступ к элементу по <? $this->element ?>

...