Zend \ InputFilter \ InputFilterを使用して、登録フォームからの入力を検証しようとしています。その下にコードがあります:
- 'email'フィールドの電子メールアドレスを検証します。それから
- 'email_confirm'の値が'email'の値と一致することを確認します。
これは、ユーザーが両方のフィールドを空白のままにした場合を除いて、すべてのインスタンスで機能します。その場合、「email_confirm」のバリデーターはエラーを返しますArray ( [isEmpty] => Value is required and can't be empty )
。
このエラーメッセージをカスタマイズするにはどうすればよいですか?以下を使用して設定することはできません:
'messages' => array(
'isEmpty' => 'Message Here'
),
これは、Zend \ Validator \Identicalに「isEmpty」のメッセージテンプレートがないという例外が(非常に正しく)スローされるためです。また、以前に「email」フィールドに設定したメッセージを取得していません。取得していない場合は、を返しArray ( [isEmpty] => Please enter your email address )
ます。
$this->add($inputFactory->createInput(array(
'name' => 'email',
'required' => true,
'filters' => array(
array('name' => 'StripTags'),
array('name' => 'StringTrim'),
),
'validators' => array(
array(
'name' =>'NotEmpty',
'options' => array(
'messages' => array(
'isEmpty' => 'Please enter your email address'
),
),
),
array(
'name' => 'StringLength',
'options' => array(
'encoding' => 'UTF-8',
'max' => 200,
'messages' => array(
'stringLengthTooLong' => "Email addresses cannot be more than 200 characters"
),
),
),
array(
'name' =>'EmailAddress',
'options' => array(
'useMxCheck' => true,
),
),
),
)));
$this->add($inputFactory->createInput(array(
'name' => 'email_confirm',
'required' => true,
'filters' => array(
array('name' => 'StripTags'),
array('name' => 'StringTrim'),
),
'validators' => array(
array(
'name' => 'Identical',
'options' => array(
'token' => 'email',
'messages' => array(
'notSame' => "Your email addresses do not match, please try again",
),
),
),
),
)));
ありがとう、ニール