Я использую Zend Framework 1.62 (потому что мы разворачиваем готовый продукт на экземпляр Red Hat, у которого недостаточно hgih-версии PHP для поддержки> ZF1.62).
При создании формы с использованием Zend Form, я добавляю элемент select, добавляю несколько параметров.
Я использую Zend Form в качестве слоя проверки объекта, передавая через него значения объектов и используя метод isValid, чтобы определить, все ли значения попадают в нормальные параметры.
Zend_Form_Element_Select работает точно так же, как и ожидалось, показывая недействительным, если вводится любое другое значение, кроме одного из добавленных мною вариантов выбора.
Проблема возникает, когда я хочу отобразить форму в какой-то момент, я не могу отредактировать сообщение об ошибке, созданное предварительно зарегистрированным валидатором InArray, автоматически добавленным ZF. Я знаю, что могу отключить это поведение, но оно прекрасно работает, кроме сообщений об ошибках. Я попробовал следующее:
$this->getElement('country')->getValidator('InArray')->setMessage('The country is not in the approved lists of countries');
// Doesn't work at all.
$this->getElement('country')->setErrorMessage('The country is not in the approved lists of countries');
// Вызывает конфликт в приложении и не позволяет детально контролировать сообщения об ошибках.
У кого-нибудь есть идеи?
Ben