zend tutorial framework documentacion php zend-framework zend-form zend-form-element

php - tutorial - Validadores Zend y mensajes de error: addValidator y addErrorMessage



zend framework doc (4)

Si tengo un elemento de formulario que tiene múltiples validadores adjuntos (3 en este ejemplo), cómo addErrorMessage para crear mensajes de error personalizados cuando falla cada validador único. ¿Hay alguna manera de agregar un mensaje personalizado para cada validador?

$element = new Zend_Form_Element_Text()... $element->.... ->addValidator(...) ->addValidator(...) ->addValidator(...) ->addErrorMessage()


Por lo general, se realiza por mensaje de error del validador, no por validador ...

$element->setErrorMessages(array(Zend_Validate_...::CONSTANT => ''New Message''));

Pero a menudo prefiero anular todos los errores de un elemento a un solo

$element->setErrorMessages(array(''Single Error''));

o, si lo necesito por validador, esto funciona ...

$validator->setMessages(''string error'')

debe anular todos los errores de un validador en un solo mensaje. No pude encontrar esto documentado en ninguna parte, pero funciona para mí. Debido a esto, puede que no funcione para todas las versiones?

Para mí, el manejo de mensajes de error es un poco complicado a menos que desee anular todos los mensajes de error posibles, pero espero que una de estas soluciones funcione para usted.

Aclamaciones


Agregue su mensaje junto con el validador de la siguiente manera. Ejemplo:

->addValidator(''StringLength'', false, array(0,255,''messages''=>''Cannot be more than 255 chars'')) ->addValidator(''NotEmpty'', true, array(''messages''=>''Cannot be empty''))


Agrega tu mensaje como este

-> addValidator (''Alpha'', true, array (''messages'' => array (''notAlpha'' => "Introduzca el carácter alfabético solo en Nombre del producto.
")));

Agregue un mensaje de validador de acuerdo con su cadena de error


addErrorMessage (''Su mensaje personalizado''); También es la forma más fácil de imprimir el mensaje personalizado.

AddErrorMessage se define dentro de libraray / zend / Form / Elements.php

¡¡Espero eso ayude!!