0

私は次のコードを持っています

$validators = array(
        'name'  => array('NotEmpty',
                        'messages' => 'A valid name is required'
        ),

        'email'=> array(
            new Zend_Validate_Regex("^[a-z0-9]+[a-z0-9_-]*(\.[a-z0-9_-]+)*@[a-z0-9_-]+(\.[a-z0-9_-]+) *\.([a-z]+){2,}$^"),
            'messages' => array('A valid email is required',
                Zend_Validate_Regex::NOT_MATCH=>'The email is not valid',)
        ))

そして、isValidであり、名前と電子メールの両方が空であるかどうかを確認すると、両方の「有効な名前が必要です」を取得します

結果は次のようになります

Array
(
    [name] => Array
        (
            [isEmpty] => A valid name is required
        )

    [email] => Array
        (
            [isEmpty] => A valid name is required
        )

)

だから私の質問は、両方が空の場合に必要なメッセージをそれぞれ取得する方法ですか?また、適切なメッセージを表示して機能させるには、電子メールの検証が必要です。前もって感謝します。

4

2 に答える 2

1

適切な電子メール検証のために、組み込みの電子メールバリデーターを使用できます。したがって、フォーム要素を作成するときに、バリデーターを指定できます。

$email = new Zend_Form_Element_Text('email');
$email->setDecorators($this->elementDecorators)
      ->setLabel('Email')
      ->setRequired(true)
      ->addValidator('EmailAddress')
      ->setFilters(array('StringTrim','StringToLower'));

エラーメッセージを指定することもできます。

$email->setErrorMessages(array(
      'err1' => 'Error1',
      'err2' => 'Error2'
));  

Zend_Formは、適切なエラーメッセージをエコーし​​ます。

于 2011-04-03T15:24:59.187 に答える
0
$validator = new Zend_Validate_EmailAddress();
$validator->setMessage(
    'A valid email is required',
    Zend_Validate_EmailAddress::INVALID
);
于 2011-04-03T23:19:56.743 に答える