2010-06-04 12 views
5

Necesito cambiar todos los mensajes de error estándar en mi mensaje en Zend_Element_Text cuando uso el validador ('EmailAddress') este validador muestra varios mensajes diferentes.change error_message en Zend_Validate_EmailAddress

  • valor que se requiere y no puede estar vacía
  • '' no es una dirección de correo electrónico válida en el formato básico parte-local @ host

Cuando defino las opciones para setErrorMessage ('algunos mi mensaje de error ') cadena que muestra un error varias veces.

ve el error como

  • alguna mi texto de error
  • alguna mi texto de error

cuál es la mejor manera de resolver este problema? ZF versión 1.10.3

+0

he intentado limpiar su pregunta, pero para la vida de mí no puedo averiguar lo que quiere decir con *' ... esto trows validador mensaje differnt y opciones standatr setErrorMessage writen tanto como este elemento (1 , 2,3 mensaje similar) '* –

+0

Ver http://framework.zend.com/manual/en/zend.validate.messages.html – salathe

+0

Lo veo antes pero no está claro si puedo ver las variables estáticas existentes como Zend_Validate_GranterThan: : NO_GREATER? – Alexandr

Respuesta

3

El El siguiente debe cubrir todos los mensajes de error para Zend_Validate_EmailAddress

$emailValidator = new Zend_Validate_EmailAddress(); 
$emailValidator->setMessages(
    array(
     Zend_Validate_EmailAddress::INVALID => 'Please enter in a valid email address in the format [email protected]', 
     Zend_Validate_EmailAddress::INVALID_FORMAT => 'Error with format', 
     Zend_Validate_EmailAddress::INVALID_HOSTNAME => 'Error with hostname', 
     Zend_Validate_EmailAddress::INVALID_LOCAL_PART => 'Error with Local Part', 
     Zend_Validate_EmailAddress::INVALID_MX_RECORD => 'Error with MX record', 
     Zend_Validate_EmailAddress::INVALID_SEGMENT => 'Error with Segment' 
    ) 
); 

Intente usar eso y vea si esos mensajes de error se muestran. Es de esperar que pueda personalizarlos y mostrar los mensajes de validación correctos.

+0

Gracias a Alistair su consejo me impulsó http://framework.zend.com/apidoc/1.10/ donde encuentro todas las posibles const. – Alexandr

0

@Alistair, no funciona su sugerencia aquí.

// Email 
    $email = new Zend_Form_Element_Text('email'); 

    $notempty = new Zend_Validate_NotEmpty(); 
    $email_validate = new Zend_Validate_EmailAddress(); 
    $email_validate->setMessages(
     array(
      Zend_Validate_EmailAddress::INVALID => 'Please enter in a valid email address in the format [email protected]', 
      Zend_Validate_EmailAddress::INVALID_FORMAT => 'Error with format', 
      Zend_Validate_EmailAddress::INVALID_HOSTNAME => 'Error with hostname', 
      Zend_Validate_EmailAddress::INVALID_LOCAL_PART => 'Error with Local Part', 
      Zend_Validate_EmailAddress::INVALID_MX_RECORD => 'Error with MX record', 
      Zend_Validate_EmailAddress::INVALID_SEGMENT => 'Error with Segment' 
    ) 
); 

    $email->addValidator($notempty , true, $email_validate) 
     ->setRequired(false); 
    // Submit 
    $submit = new Zend_Form_Element_Submit('submit'); 
+0

Si agrega varios validadores, debe usar $ email-> addValidators (array (objects implements "Zend_Validate_Interface")) o si usa addValidator debe agregar un validador – Alexandr