Foros del Web » Programando para Internet » PHP » Zend »

mensajes de error en Zend_Form

Estas en el tema de mensajes de error en Zend_Form en el foro de Zend en Foros del Web. Hola amigos, una nueva comsulta sobre el uso de formularios en Zend. Código PHP:             $email  = new  Zend_Form_Element_Text ( 'email' );              $email                  -> setLabel ...
  #1 (permalink)  
Antiguo 25/02/2010, 18:06
 
Fecha de Ingreso: enero-2008
Mensajes: 115
Antigüedad: 16 años, 10 meses
Puntos: 1
mensajes de error en Zend_Form

Hola amigos,
una nueva comsulta sobre el uso de formularios en Zend.

Código PHP:
            $email = new Zend_Form_Element_Text('email');
            
$email
                
->setLabel($this->getView()->getTranslation('Email'))
                ->
setRequired(TRUE)
                ->
addValidator('EmailAddress')        
                ->
setAttrib('style''width:230px')
                ->
setErrorMessages(array($this->getView()->getTranslation('You must be enter a valid Email'))); 
tengo ese campo "email", como puedo hacer que por ejemplo para el caso del setRequired el error que devuelve sea "Usted debe ingresar el email" y cuando ingrese un email incorrecto slga... "usted debe ingresar un email valido" ??

igual para otros casos... por ejemplo... la contraseña... cuando le ponemos minimo 6 caracteres... que aparezca un mensaje de error para cada filtro... o cada validator... como es que se puede poner eso ??... porque cuando pongo esa linea de setErrorMessages me sobreescribe los errores...

ya que tengo otro caso por ejemplo donde uso "Zend_Validate_Db_NoRecordExists" pero quisiera que el mensaje de error que bote sea.... "El email que ha ingresado ya existe" o algo asi...


gracias :)
  #2 (permalink)  
Antiguo 26/02/2010, 09:50
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años, 5 meses
Puntos: 2135
Respuesta: mensajes de error en Zend_Form

Todos los mensajes que arroja el validador, los puedes traducir pasandole a tu forma un objeto Zend_Translator, y usando como keys las constantes de los mensajes, te dejo este link para que veas:

http://vida.danguer.com/2008/05/06/f...ork-zend_form/

Saludos.
  #3 (permalink)  
Antiguo 26/02/2010, 10:21
 
Fecha de Ingreso: enero-2008
Mensajes: 115
Antigüedad: 16 años, 10 meses
Puntos: 1
Respuesta: mensajes de error en Zend_Form

GatorV, gracias por tu respuesta.

Pero, como hago en el caso de que yo quiera crear mensajes personalizados... ya que lo que ahi veo es que traducen todos los mensajes que devuelve un validador... por ejemplo el de email devuelve hasta como 4 mensajes de error... yo solo quiero mostrar "un solo mensaje" cuando el email sea invalido.... u otro cuando el email este vacio.... igual como les decia cuando el email ya existe en la base de datos...
quiero mostrar algo que diga... "Este correo ya existe en nuestro sistema"... hay alguna forma de hacer eso desde donde se crean los elementos de formulario ??
  #4 (permalink)  
Antiguo 26/02/2010, 11:11
 
Fecha de Ingreso: noviembre-2008
Mensajes: 62
Antigüedad: 16 años
Puntos: 1
Respuesta: mensajes de error en Zend_Form

Puedes intentar esto:

Código PHP:
  $VEmail = new Zend_Validate_EmailAddress();
  
$VEmail->setMessage('<MENSAJE QUE NECESITES>');

  
$VRepEmail = new Zend_Validate_Db_NoRecordExists('<TABLA'>,'<CAMPO>');
  
$VRepEmail->setMessage('<MENSAJE QUE NECESITES>'); 
Puedes poner todos los que necesites y luego

Código PHP:
        $Email $this->createElement('text''email');
        
$Email->addValidator($VEmail)
              ->
addValidator($VRepEmail)
              ->
setLabel('Email');
                 ->
setRequired(true);
        
$this->addElement($Email); 
Seguro que hay alguna forma mas esficientes, pero tp la se.


Espero que te sirva
  #5 (permalink)  
Antiguo 26/02/2010, 11:12
 
Fecha de Ingreso: enero-2008
Mensajes: 115
Antigüedad: 16 años, 10 meses
Puntos: 1
Respuesta: mensajes de error en Zend_Form

GatorV, nuevamente muchas gracias. :D

Etiquetas: mensajes
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 13:18.