Hi,
I made a previous
post<http://www.nabble.com/Zend_Validate_NotEmpty-and-unchecked-radio-button-marked-as-required--fields-tt25278297.html>about
this problem but never got any reply. I realize the title was probably
a bit unclear.
So here's my second attempt.
Since ZF 1.9.x when you try to validate a null value with
Zend_Validate_NotEmpty you get the INVALID error message instead of the
IS_EMPTY error message.
If you try:
$value = null;
$validator = new Zend_Validate_NotEmpty();
Zend_Debug::dump($validator->isValid($value));
Zend_Debug::dump($validator->getErrors());
Zend_Debug::dump($validator->getMessages());
since ZF 1.9.x it results in:
bool(false)
array(1) {
[0] => string(15) "notEmptyInvalid"
}
array(1) {
["notEmptyInvalid"] => string(76) "Invalid type given, value should be
float, string, array, boolean or integer"
}
before ZF 1.9.x it would result in:
bool(false)
array(1) {
[0] => string(7) "isEmpty"
}
array(1) {
["isEmpty"] => string(36) "Value is required and can't be empty"
}
I believe the expected behavior is to get the IS_EMPTY and not the INVALID
error type.
A fix for this would be to check that the value is not null before checking
its type (in Zend/Validate/NotEmpty.php on line 56)
if (null !== $value && !is_string($value) && !is_int($value) &&
!is_float($value) && !is_bool($value) &&
!is_array($value)) {
$this->_error(self::INVALID);
return false;
}
Could someone confirm this issue?
Martin Carpentier