Я экспериментирую с классом Zend_Validate_Between .
Я настроил это так:
$scoreBetweenValidator = new Zend_Validate_Between(-3, 3, true);
, поэтому валидатор должен принимать значения только от -3 до 3 включительно.
На недопустимом значении, которое я получил, '% value%' не найдено в сообщении об ошибке haystack , которое, я думаю, принадлежит классу Zend_Validate_InArray (Zend_Validate_InArray :: NOT_IN_ARRAY) .
Моя проблема в том, что я хочу использовать пользовательские сообщения об ошибках с помощью метода setMessages , но я не знаю, как настроить его для этого, казалось бы, внешнего ключа сообщения.
Я пробовал это:
$scoreBetweenValidator->setMessages(array(
Zend_Validate_Between::NOT_BETWEEN_STRICT => 'my custom msg',
Zend_Validate_Between::NOT_BETWEEN => 'my other custom msg',
//'notInArray' => "doesn't work"
//Zend_Validate_InArray::NOT_IN_ARRAY => "also doesn't work"
));
но я получил Не существует шаблон сообщения для ключа 'notInArray' исключение.
Какое предпочтительное решение для настройки пользовательских сообщений проверки в Zend Framework?
В ответ Джейсону:
A Zend_Form_Element_Select находится внутри класса Zend_Form , присоединенного с помощью метода addElements .
Форма не имеет никаких других элементов, кроме этого, и у нее нет других валидаторов, кроме Between.
Параметры выбора все действительны по умолчанию, но когда я настраиваю значение параметра (с помощью Firebug) и устанавливаю недопустимое значение (как попытка самовосстановления), я получаю исключение notInArray.