次のようなテキスト要素を作成するとします。
$firstName = new Zend_Form_Element_Text('firstName');
$firstName->setRequired(true);
デフォルトのエラー メッセージを変更する最適な方法は何ですか。
値が空ですが、空でない値が必要です
カスタムメッセージに変更しますか?メッセージを置き換えるにはaddValidator(..., を使用するだけだとどこかで読んだのですが、代わりに(setRequiredなし)、 このような:
$firstName = new Zend_Form_Element_Text('firstName');
$firstName->addValidator('NotEmpty', false, array('messages'=>'Cannot be empty'));
しかし、私のテストでは、これは機能しません - まったく検証されません -空のテキストフィールドで通過します。(addValidator('NotEmp.. + setRequired(true))を同時に使用するこれも機能しません - 二重に検証します、与える二エラーメッセージ。
何か案は?
ありがとう!
ベストアンサー1
これを「サイト全体」に設定するより簡単な方法は、ブートストラップまたはベースの zend_controller で次の操作を実行することです。
<?php
$translateValidators = array(
Zend_Validate_NotEmpty::IS_EMPTY => 'Value must be entered',
Zend_Validate_Regex::NOT_MATCH => 'Invalid value entered',
Zend_Validate_StringLength::TOO_SHORT => 'Value cannot be less than %min% characters',
Zend_Validate_StringLength::TOO_LONG => 'Value cannot be longer than %max% characters',
Zend_Validate_EmailAddress::INVALID => 'Invalid e-mail address'
);
$translator = new Zend_Translate('array', $translateValidators);
Zend_Validate_Abstract::setDefaultTranslator($translator);
?>