2009-07-15 9 views
0

私はZend_Filter_Inputを使用してフォームデータを検証し、ユーザーが値を入力しない場合はエラーメッセージをカスタマイズします。各フィールドに異なるエラーメッセージが表示されることが重要です。私はZend_Filter_Inputの「バリ」のパラメータについては、以下の配列を使用Zend Frameworkの1.8.0でZend_Filter_Inputと空の値

:私はZF 1.8.4にアップグレードしたので

$validators = array(
    'salutation' => array(
     new Zend_Validate_NotEmpty(), 
     Zend_Filter_Input::MESSAGES => array(
      Zend_Validate_NotEmpty::IS_EMPTY => "Please enter a salutation" 
     ) 
    ), 
    /* ... */ 
); 

を、私は常に空のデフォルトのメッセージが表示されますフィールド( "フィールド '%フィールド%'に空でない値を指定する必要があります)。明らかに、Zend_Filter_Inputフィールドが空の場合は、Zend_Validate_NotEmptyバリデータをもう呼び出しません。

この動作またはフィールドごとにカスタマイズされた「空の」メッセージを取得する別の方法を変更する方法はありますか?

+0

フィルタを実際に混合して検証していますか?彼らはまったく異なる子孫を持っています... –

+0

Zend_Filter_Input :: MESSAGESを使ってメッセージを検証していません - それは問題かもしれません。 –

答えて

1

Zend_Filter_Inputは、空のフィールドを処理するときにその動作が変更されたようです。空のフィールドは、ルールバリデーターによって決して処理されません。フィールドが空で、allowEmptyがtrueに設定されている場合は、いずれのバリデータも使用されません。フィールドが空でallowEmptyがfalseに設定されている場合、空の値のデフォルトメッセージが設定されます。現在、特定のフィールドに対してこのメ​​ッセージをカスタマイズする方法はありません。

+0

Zend Framework 1.8.4では、私はまだデフォルトのメッセージを受け取ります。 – uberboom

+0

欠落しているフィールド、またはNotEmpty-Validatorのデフォルトのメッセージのデフォルトメッセージを取得しますか? – Flo

+0

トピックに関するいくつかの調査の後に答えを変更しました。 – Flo

0

これを試してみてくださいバグです:

$validators = array(
     'salutation' => array('NotEmpty', Zend_Filter_Input::MESSAGES => 'Please enter a salutation') 
     ); 

私はなぜ知らないが、(Zend_Validate_NotEmptyクラスでそれを含めず)彼らは「NotEmpty」と定数「のisEmpty」に変更と思われます。 時々私はZendと一緒にナッツをするだけです。 :)