изменить сообщение об ошибке в Zend_Validate_EmailAddress - PullRequest
5 голосов
/ 04 июня 2010

Мне нужно изменить все стандартные сообщения об ошибках в моем сообщении в Zend_Element_Text, когда я использую validator ('EmailAddress'), этот валидатор выдаёт несколько разных сообщений.

  • Значение требуется и не может быть пустым
  • '' не является действительным адресом электронной почты в базовом формате local-part @ hostname

Когда я устанавливаю параметры setErrorMessage ('some my error text'), строка отображается при любой ошибке, несколькораз.

ошибка выглядит как

  • какой-то текст моей ошибки
  • какой-то текст моей ошибки

Какой самый лучший способ ее решенияэта проблема? zf версия 1.10.3

Ответы [ 2 ]

3 голосов
/ 04 июня 2010

Следующее должно охватывать все сообщения об ошибках для 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 user@domain.co.uk',
        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'
    )
);

Попробуйте использовать это и посмотрите, отображаются ли эти сообщения об ошибках.Надеюсь, вы сможете настроить их и получить правильные сообщения о проверке.

0 голосов
/ 06 июня 2010

@ Алистер, не работай здесь с твоим предложением.

// 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 user@domain.co.uk',
          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');
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...