0

デフォルトでは、一部のフォーム要素(Zend_Form_Element_MultiCheckboxなど)は、登録されたオプションの配列キーに対して検証するInArrayバリデーターを登録します。このバリデーターは大文字と小文字を区別する比較を使用しました。大文字と小文字を区別しない最も簡単な方法は何ですか?私に起こる唯一の解決策は今このようなものに見えます。このバリデーターをオフにします。

$element->setRegisterInArrayValidator(false);

大文字と小文字を区別しない比較を行う新しいバリデーターを作成し、要素に対してこの検証を追加します。これがこの問題を解決する唯一の方法ですか?大文字と小文字を区別しない比較を行うためにinArrayバリデーターを作成する標準的な方法があると便利なようです。

4

1 に答える 1

0

Zend_Validate_InArray関数を使用in_arrayし、関数のドキュメントには次のように記載されています。

針が文字列の場合、大文字と小文字を区別して比較が行われます。

Zend_Validate_InArray厳密な比較のためのオプションが含まれています。これはin_array関数によっても処理されます。ただし、大文字と小文字を区別しない比較のオプションはありません。

resursiveオプションを使用すると、Zend_Validate_InArrayの代わりに再帰的イテレータを使用し、 (または厳密モードでは)演算子を使用in_arrayして値を比較します。これも大文字と小文字が区別されます。=====

したがって、独自のバリデーターを作成する以外に選択肢はありません(これは、から継承しZend_Validate_InArray、オーバーライドしますpublic function isValid($value))。

于 2012-11-08T10:51:51.200 に答える