Zend_Form -> setRequired() の検証メッセージをうまく変更する 質問する

Zend_Form -> setRequired() の検証メッセージをうまく変更する 質問する

次のようなテキスト要素を作成するとします。

$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);
?>

おすすめ記事