Ich habe den folgenden Code ein Eingabefeld für Benutzer-E-Mail-Adressezend Form E-Mail-Validierung
$email = new Zend_Form_Element_Text('email');
$email->setLabel('Email:')
->addFilters(array('StringTrim', 'StripTags'))
->addValidator('EmailAddress')
->addValidator(new Zend_Validate_Db_NoRecordExists(
array(
'adapter'=>Zend_Registry::get('user_db'),
'field'=>'email',
'table'=>'tbl_user'
)))
->setRequired(true)
->setDecorators(array(
array('Label', array('escape'=>false, 'placement'=>'append')),
array('ViewHelper'),
array('Errors'),
array('Description',array('escape'=>false,'tag'=>'div')),
array('HtmlTag', array('tag' => 'div')),
));
$this->addElement($email);
jetzt das Problem zu erzeugen, ist, wenn der Benutzer für E-Mail ungültig Hostnamen eingeben, es 3 Fehler erzeugen. Nehmen wir an, Benutzer geben 'admin @ l' als E-Mail-Adresse ein und die Fehler lauten
* 'l' ist kein gültiger Hostname für die E-Mail-Adresse 'admin @ l' * 'l' stimmt nicht mit der erwarteten Struktur überein DNS-Hostname
* 'l' scheint ein lokaler Netzwerkname zu sein, aber lokale Netzwerknamen sind nicht zulässig
Ich möchte nur, dass es nur einen benutzerdefinierten Fehler anstelle all dieser gibt. Wenn ich die Fehlermeldung "Ungültige E-Mail-Adresse" durch die Methode addErrorMessage einstellt, wird erneut die gleiche Nachricht für die db_validation generiert.
ja, aber ich habe auch DB Validator, der prüft, ob die E-Mail bereits verwendet wird, um mit der Website zu registrieren.und wenn ich die obige Nachricht hinzufüge, selbst wenn die E-Mail gültig ist, aber in der Datenbank existiert, wird sie die benutzerdefinierte Nachricht anzeigen. – Bryan
Schau es Dir an !! Arbeitete dann besser wenn nicht funktioniert dann ist es in Ordnung !! –
Ich werde es am Wochenende testen und werde es euch wissen lassen. danke – Bryan