Based on your example, it looks like the backward compatibility was broken.
- pw On Sat, Sep 12, 2009 at 7:20 AM, Martin Carpentier < [email protected]> wrote: > 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 >
