3

少なくとも 1 つのフィールドに値があることを確認するカスタム バリデータを作成しています。「namefield」または「idfield」に値があることを検証したい。そのうちの 1 つを空にすることも、両方に値を設定することもできますが、少なくとも 1 つに値を設定する必要があります。

$nameField = new Zend_Form_Element_Hidden('namefield');
$nameField->setValue($this->nameFieldValue)
          ->addValidator('AtLeastOneHasValue', false, array('idfield'));

私が理解していることから、フォーム要素を必須に設定しない限り、バリデーターは検証されません。

->setRequired(true)

しかし、必須に設定すると、空でないことが自動的に検証され、空であるというエラー メッセージが表示されます。フィールドを空にすることを許可し、カスタム バリデーターで複数のフィールドを検証したいと考えています。フォーム要素を必須に設定せずに、カスタムバリデーターでフォーム要素を検証するにはどうすればよいですか?

4

1 に答える 1

6

setAllowEmpty() メソッドについては、このドキュメント ページを確認してください。これは、目的の場所に到達するのに役立ちます。

setAllowEmpty($flag) および getAllowEmpty() を使用すると、オプション要素 (つまり、必須フラグが false である要素) の動作を変更できます。「allow empty」フラグが true の場合、空の値はバリデータ チェーンに渡されません。

于 2008-12-23T00:41:01.967 に答える