Buduję aplikację ZendFramework, która jako formularz logowania prosi o podanie adresu e-mail i hasła - wydawało się, że sensowne jest zweryfikowanie adresu e-mail przed trafieniem do bazy danych z próbą zalogowania, ponieważ nieprawidłowy e-mail nigdy nie doprowadzi do prawidłowego trafienie. Zend_Validate_EmailAddress wydawał się być właściwą drogą, ale mam problem z generowaniem wielu błędów (pytanie na dole, po kodzie).W Zend_Form, jak uniknąć Zend_Validate_Email od generowania wielu błędów?
Moja postać ma obecnie następujące
//WPMail_Form_Login::init()
$email = $this->addElement('text', 'email', array(
'label'=>'Email',
'required'=>true,
'filters'=>array('stringtrim'),
'validators'=>array(array('emailaddress', true, array(
'messages'=>array(
'emailAddressInvalidHostname'=>'Your email address is invalid',
'emailAddressInvalidFormat'=>'Your email address is invalid',
'...'=>'(repeat for all message templates)'
)
))),
));
W regulatorze ja bezpośrednio przekazać formularz do widzenia:
// WPMail_AuthController::loginAction()
$this->view->form = $form;
A w widoku, to bezpośrednio echo'd:
// views/scripts/auth/login.phtml
<?php echo $this->form ?>
Wynik jest obecnie podobny do następującego:
- Your email address is invalid
- 'asda!!!' does not match the expected structure for a DNS hostname
- 'asda!!!' does not appear to be a valid local network name
Co chcę wiedzieć, to: czy można skonfigurować Zend _
Sprawdź poprawność _
EmailAddress w taki sposób, że generuje tylko jeden błąd niepoprawny e-mail? Przez "configure" rozumiem, bez rozszerzania klasy i nadpisywania logiki własnymi.
TIA.
Cudownie, dzięki! Natknąłem się na to, ale jakoś założyłem, że dodanie komunikatu o błędzie unieważni formularz (jak w tym, że jest to część, kiedy robisz swoją własną walidację) .. cieszę się, że to jest takie proste! – kander
Może to być mylące .. $ email-> addError ($ message) ustawi błąd i oznaczy go jako niepoprawny, ale pojawi się komunikat $ email-> addErrorMessage (komunikat $), aby ustawić komunikat, który nadpisuje domyślne i doesn "ustaw błąd! – simonrjones
+1, dzięki za wskazówkę wiedzy – Ish