Я использую Zend_Validate
для проверки ввода формы (Zend Framework версия 1.8.2). По какой-то причине использование интерфейса Zend_Filter_Input
, как описано здесь не работает:
$data = $_POST;
$filters = array('*' => array('StringTrim'));
$validators = array('driverName' => array('NotEmpty','messages' => 'This should override the default message but does not!'));
$inputFilter = new Zend_Filter_Input($filters,$validators,$data);
$messages = $inputFilter->getMessages();
debug($messages); //show me the variable contents
Вывод из debug($messages)
:
Array
(
[driverName] => Array
(
[isEmpty] => You must give a non-empty value for field 'driverName'
)
)
Что бы я ни делал, я не могу переопределить это сообщение. Если я использую валидатор напрямую, то есть ::1016*
$notEmpty = new Zend_Validate_NotEmpty();
$notEmpty->setMessage('This WILL override the default validation error message');
if (!$notEmpty->isValid($_POST['driverName'])) {
$messages = $notEmpty->getMessages();
debug($messages);
}
Вывод из debug($messages)
:
Array
(
[isEmpty] => Please enter your name
)
Итог. Я могу заставить работать валидаторы, но без преимуществ метода валидации Zend_Filter_Input
я могу написать свой собственный класс валидации!
Кто-нибудь знает, почему это происходит и как это исправить?
Может ли это быть ошибкой?