Ben bir e-posta adresi ve şifresi isteyen bir giriş formuna olarak ZendFramework uygulaması inşa ediyorum - geçersiz e-posta olarak, giriş girişimi ile veritabanı isabet önce e-posta adresini doğrulamak için mantıklı görünüyordu geçerli bir yol asla çarptı. Zend_Validate_EmailAddress gitmek için doğru bir yol gibi görünüyordu, ancak birden fazla hata üreten bir sorun yaşıyorum (altta, koddan sonra soru).Bir Zend_Form'da, Zend_Validate_Email'in birden çok hata üretmesini nasıl önleyebilirsiniz?
// WPMail_AuthController::loginAction()
$this->view->form = $form;
Ve görünümde, doğrudan echo'd oluyor:
Benim form şu anda doğrudan görünümüne formu geçmesi denetleyici olarak
//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)'
)
))),
));
aşağıdaki sahiptir
:// views/scripts/auth/login.phtml
<?php echo $this->form ?>
sonuç anda bu gibi bir şey Bilmek istiyorum istiyorum ne 210
- 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
: sadece tek bir eposta-geçersiz hata üretir şekilde Zend _
Doğrulama _
EmailAddress yapılandırmak mümkün mü? 'Configure' ile, sınıfı genişletmeden ve mantığı kendi başıma geçersiz kılmaktan kastediyorum.
TIA.
Harika, teşekkürler! Aslında buna rastladım, ama bir şekilde bir hata mesajı eklemenin formu geçersiz kılacağını varsaydı (kendi onayınızı yaptığınız zamanın bir parçası olduğu gibi) .. bu kadar basit olduğunu görmekten memnun oldum! – kander
Kafa karıştırıcı olabilir .. $ email-> addError ($ message) bir hata belirleyecek ve geçersiz olarak işaretleyecektir, ancak $ email-> addErrorMessage ($ message) sadece varsayılanları geçersiz kılan mesajı ayarlıyor gibi görünmüyor. bir hata koydu! – simonrjones
+1, bilgi ipucu için teşekkürler – Ish