Estoy construyendo una aplicación ZendFramework que como formulario de inicio de sesión solicita una dirección de correo electrónico y una contraseña. Parecía lógico validar la dirección de correo electrónico antes de llegar a la base de datos con el intento de inicio de sesión, ya que un correo electrónico no válido nunca daría lugar golpear. Zend_Validate_EmailAddress parecía ser el camino correcto, pero estoy teniendo un problema generando varios errores (pregunta al pie, después del código).En Zend_Form, ¿cómo evitar que Zend_Validate_Email genere múltiples errores?
Mi forma tiene actualmente la siguiente
//WPMail_Form_Login::init()
$email = $this->addElement('text', 'email', array(
'label'=>'Email',
'required'=>true,
'filters'=>array('stringtrim'),
'validators'=>array(array('emailaddress', true, array(
'messages'=>array(
'emailAddressInvalidHostname'=>'Your email address is invalid',
'emailAddressInvalidFormat'=>'Your email address is invalid',
'...'=>'(repeat for all message templates)'
)
))),
));
En el controlador que pase directamente el formulario en la vista:
// WPMail_AuthController::loginAction()
$this->view->form = $form;
Y en la vista, que está directamente echo'd:
// views/scripts/auth/login.phtml
<?php echo $this->form ?>
El resultado es actualmente algo como esto:
- Your email address is invalid
- 'asda!!!' does not match the expected structure for a DNS hostname
- 'asda!!!' does not appear to be a valid local network name
Lo que deseo saber es: ¿Es posible configurar Zend _
Validar _
EmailAddress de tal forma que solo produzca un solo error de correo electrónico no válido? Con "configurar" quiero decir, sin extender la clase y anular la lógica con la mía.
TIA.
Maravilloso, gracias! De hecho, me encontré con eso, pero de alguna manera asumí que agregar un mensaje de error invalidaría el formulario (como en eso es parte de cuando haces tu propia validación) ... ¡me alegra ver que es así de simple! – kander
Puede ser confuso ... $ email-> addError ($ mensaje) establecerá un error y marcará como no válido, pero $ email-> addErrorMessage ($ message) simplemente aparece para configurar el mensaje, que anula los predeterminados, y doesn ha configurado un error! – simonrjones
+1, gracias por el consejo de conocimiento – Ish