0

次のメソッドを使用して、zendフォーム要素のすべてのエラーメッセージをオーバーライドできます。

$name->setRequired( TRUE )
    ->setAttrib( 'id', 'fullname' )
    ->addErrorMessage( 'Please provide your name' );

ただし、ファクトリパターンを使用してフォーム要素を作成している場合、これを複製することはできません。
'errorMessage'キーは何もしません。

$this->addElement('text', 'city', array(
        'placeholder'   => 'City*',
        'required'      => true,
        'filters'       => array('StringTrim', 'StripTags'),
        'errorMessage'  => 'TEST',
        'validators'    => array(
            array('StringLength', false,
                array(3, 50, 
                    /*'messages' => array(
                        Zend_Validate_StringLength::TOO_SHORT => 'too short'
                    )*/
               )
            )
        ),
        'decorators'    => array('ViewHelper','Errors'),
    ));

各Zendエラーメッセージを個別にオーバーライドできますが(コメントアウトされたコードを参照)、それは非常に面倒なプロセスです。

ファクトリパターンを使用してZFフォーム要素を作成するときにすべてのエラーメッセージを上書きする方法はありますか?

4

3 に答える 3

0

私はそれを試していませんが、あなたはできると思います:

'errorMessages'  => array('TEST'),

errorMessagesこれは複数形であり、文字列ではなく1要素の配列を渡していることに注意してください。

于 2012-12-31T20:46:36.913 に答える
0

すべてのエラーメッセージを上書きする方法はありません

于 2013-01-31T15:29:05.447 に答える
0

エラーメッセージを変更したい場合は、バリデーターの定義時に次のように定義します。

'validators' => array(
                    'NotEmpty', 
                    true, 
                    array( 'messages' => array( 'isEmpty' => "Please provide your name.") )

このフィールドが空白の場合、エラーメッセージは「名前を入力してください」になります。

于 2013-02-13T09:25:47.180 に答える