私は他の質問を見てきました/これをグーグルで検索しました。私の問題は、バリデーターを持つ空のテキストボックスでフォームを送信すると、notEmpty
エラーがトリガーされないことです。
まず、 と の違いを理解しているかどうかを確認したいと思いnotEmpty
ますsetRequired
。私が理解しているようにnotEmpty
、要素が送信され、値が空の場合、バリデーターはエラーを返します。つまり、エントリが POST データ (フォーム用) に存在しない場合、要素が必須でなくてもエラーは生成されません。要素が設定されている場合にのみ実行されるように。このメソッドは、特に指示がない限り、舞台裏でsetRequired
自動的にバリデーターを追加します。notEmpty
これにより、要素のエントリが存在する必要があり、空であってはなりません。正しい?
ここで、notEmpty
バリデーターを追加したフォームでこのロジックを使用しようとしました。
$username = new Zend_Form_Element_Text('txtUsername');
$username->addValidator(new Zend_Validate_NotEmpty(), true);
他のテキストフィールドも同様です。値を入力せずにフォームを送信すると、POST データは次のようになります。
(
[txtUsername] =>
[txtPassword] =>
[txtRepeatPassword] =>
)
ただし、isValid
引き続き評価されtrue
、エラー メッセージは生成されません。なんで?notEmpty
要素が POST データにエントリを持っているため、バリデーターは値が空であると判断すべきではありませんか? を使用するsetRequired(true)
と、希望どおりに機能します。値が空の文字列の場合、ユーザー名が空ではないと判断するのは私の心を混乱させます。:-)
前もって感謝します。