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

Reply via email to