ユーザーが無効な電子メール アドレスを入力したときに、Zend_Validate_EmailAddress に 1 つのエラー メッセージのみを表示させることができません。コードは
$email = new Zend_Form_Element_Text('email');
$email->setLabel('Email: ')
->addFilter('StringTrim')
->addFilter('StripTags')
->addValidator('EmailAddress',true, array(... error msgs ...))
->addValidator(new Zend_Validate_Db_NoRecordExists(array( ... db + table + col details ... ),true, array(... error msgs ...)))
->setRequired(true);
$this->addElement($email);
そして、ユーザーがuser@email
(tldなしで)無効な電子メールを入力すると、次のような複数のエラーが表示されます
'email' is no valid hostname for email address 'user@email'
'email' does not match the expected structure for a DNS hostname
'email' appears to be a local network name but local network names are not allowed
addErrorMessage('...')
無効な電子メールと電子メールがデータベースに既に存在する場合に別のメッセージを表示する必要があるため、使用できません。そのため、EmailAddress の検証でエラー メッセージが 1 つだけ返されるようにする方法について考えてみましょう。