Метка элемента как переменная в сообщении об ошибке для проверки - PullRequest
3 голосов
/ 07 сентября 2011

Можно ли использовать переменную внутри сообщения об ошибке со ссылкой на метку элемента формы? Можно сопоставить пользовательские переменные, такие как% hostname% (в валидаторе электронной почты), и% value% также доступно, но я также хотел бы иметь метку формы.

Я не смог найти его в базе кода ZF, но, например, случай использования Zend_Validate_NotEmpty может возвращать сообщение вроде:

"The field %label% is required and can't be empty"

Вместо:

 "Value is required and can't be empty"

Ответы [ 2 ]

1 голос
/ 07 сентября 2011

Я думаю, что это невозможно без подкласса валидаторов. Классы Zend_Validate не предназначены для использования только с Zend_Form_Element. Наличие %label% в сообщении приведет к соединению между обоими компонентами.

Возможным решением может быть создание пользовательских валидаторов путем расширения Zend_Validate_NotEmpty (или любых используемых вами валидаторов) и передачи метки конструктору. Таким образом, вы можете составлять соответствующее сообщение каждый раз, когда создаете его экземпляр.

EDIT:

Если вы следуете описанному выше методу, вы можете даже определить собственную %label% «магическую переменную» и прикрепить ее к члену класса. См. Элемент $_messageVariables в примере № 2 документации Zend Framework: Написание валидаторов

Надеюсь, это поможет ...

0 голосов
/ 16 октября 2011

Я наконец-то пошел с декоратором.Решение проблемы с dinopmi возможно, однако вам необходимо постоянно вводить этикетку.Мой декоратор ошибок для элемента формы теперь заменяет% label% на реальную метку.

...