Ver Mensaje Individual
  #1 (permalink)  
Antiguo 20/10/2010, 15:12
bengiss
 
Fecha de Ingreso: junio-2009
Mensajes: 79
Antigüedad: 15 años, 4 meses
Puntos: 0
Pregunta Problema con mensajes y zend form

Hola a todos,

Estoy usando zend_form para mostrar un formulario y tenia anteriormente un campo de email de esta manera:

Código PHP:
Ver original
  1. $email_users = new Zend_Form_Element_Text('email_users');
  2. $email_users->setLabel('Email:')
  3.                     ->setRequired(false)
  4.                     ->addFilter('StripTags')
  5.                     ->addFilter('StringTrim')
  6.                     ->addValidator('EmailAddress')
  7.                     ->setErrorMessages(array('messages' => 'Email invalido'));

Me servia sin problemas porque reemplazaba todos los mensajes de error si el email no era valido por cualquier razon, ahora he tenido que agregarle otra validacion para saber si ya existe en la base de datos y tuve que quitarle el metodo setErrorMessages ya que necesitaba mostrar un mensaje especifico cuando el email existia en la BD, lo hice de esta manera:

Código PHP:
Ver original
  1. $email_users = new Zend_Form_Element_Text('email_users');
  2. $email_users->setLabel('Email:')
  3.                     ->setRequired(false)
  4.                     ->addFilter('StripTags')
  5.                     ->addFilter('StringTrim')
  6.                     ->addValidators(array(
  7.                         array('EmailAddress', true,
  8.                             array(
  9.                                 'messages' =>
  10.                                     array(Zend_Validate_EmailAddress::INVALID => 'Email invalido')
  11.                                 )
  12.                         ),
  13.                         array('Db_NoRecordExists', true,
  14.                             array(
  15.                                 'messages' =>
  16.                                   array(Zend_Validate_Db_NoRecordExists::ERROR_RECORD_FOUND => 'Este email ya esta registrado'),
  17.                                 'table' => 'users',
  18.                                 'field' => 'email_users')
  19.                         )));

La funcionalidad esta perfecta, el problema es que ahora como tengo 2 validadores tengo que agregarlos en forma de array y especificar el tipo de error para cada mensaje e igual me sigue mostrando los mensajes por defecto de zend validate.

Existe alguna manera de decirle que sin importar el tipo de error, si es de tipo 'EmailAddress' que muestre el mismo mensaje? (exactamente la misma funcionalidad que tenia antes de agregarle este validador) Porque cuando el correo ya existe el mensaje se muestra sin problemas.

Muchas gracias de antemano.