私はログインフォームでメールアドレスとパスワードを要求するZendFrameworkアプリケーションをビルドしています。無効な電子メールが有効なものにならないため、ログイン試行でデータベースにアクセスする前に電子メールアドレスを検証するのが理にかなっているようですヒット。 Zend_Validate_EmailAddressは正しい方法のように思えましたが、複数のエラーが発生しています(コードの後ろの質問)。Zend_Formでは、Zend_Validate_Emailが複数のエラーを生成するのを避けるには?
私のフォームは、現在私が直接ビューにフォームを渡すコントローラには、以下の
//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)'
)
))),
));
があります
// WPMail_AuthController::loginAction()
$this->view->form = $form;
とビューで、それが直接echo'dです:
// views/scripts/auth/login.phtml
<?php echo $this->form ?>
結果は次のようなものです:
私が知りたい欲しい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
は次のようになります。それは、単一の電子メール、無効なエラーを生成するように、Zendの_
検証_
のEmailAddressを設定することは可能ですか? 'configure'とは、クラスを拡張せずに自分自身でロジックをオーバーライドしないという意味です。
TIA。
素敵な、ありがとう!私は実際にそれに遭遇しましたが、何らかの理由でエラーメッセージを追加するとフォームが無効になることが想定されていました(それはあなた自身の検証を行うときの一部です)。 – kander
これは混乱することがあります.. $ email-> addError($ message)はエラーを設定し、無効とマークしますが、$ email-> addErrorMessage($ message)はメッセージを設定するように見えます。エラーを設定しないでください! – simonrjones
+1、知識のおかげです。 – Ish