2010-10-02 13 views
5

Si tengo un elemento de formulario que tiene varios validadores adjuntos (3 en este ejemplo), cómo usaría addErrorMessage para crear mensajes de error personalizados cuando falla cada validador único. ¿Hay alguna manera de agregar un mensaje personalizado para cada validador?Validadores Zend y mensajes de error: addValidator y addErrorMessage

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

Respuesta

11

Normalmente se hace por mensaje de error de validación, no por validador ...

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

Pero a menudo prefiero anular todos los errores de un elemento de una sola

$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.

Saludos

+0

tengo algunos errores adicionales pero con la primera validación no funciona –

6

Añadir 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')) 
2

Añadir su mensaje como este

-> addValidator ('Alpha', es cierto, array (= 'mensajes'> array ('notAlpha' => "Por favor, introduzca caracteres alfabéticos en el nombre del producto
")));

Añadir mensaje de validación de acuerdo a su cadena de error

+0

Me gusta el manejo de mensajes especificado a través de 'notAlpha'. ¿me pueden guiar hacia dónde puedo encontrar más de esos identificadores para el resto de validadores? gracias de todos modos: ^) – Katia

+0

Encuentra estos varibale de mensaje de error de su archivo de validación. ir a la ruta siguiente project/library/Zend/Validate seleccione su regla de validación, Aquí encontrará la lista de "const" que es para el mensaje de error –

0

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

El addErrorMessage se define dentro libraray/Zend/Formulario/Elements.php

espero que ayude !!

Cuestiones relacionadas