6

私は要素を持つフォームを持っていますusername。と の 2 つのバリデータがありNotEmptyますStringLength。のカスタム エラー メッセージStringLengthは機能していますが、どういうわけかNotEmptyバリデータのカスタム エラー メッセージを使用していません。ZF1 では、オフにできる要素を必須にするときに、notEmpty バリデータが自動的に追加されました。ZF2 でそのようなオプションを見つけることができず、必要なフラグによって既に追加されているため、NotEmpty バリデーターが使用されていない可能性があります!?

    $inputFilter->add($factory->createInput(array(
        'name'     => 'username',
        'required' => true,
        'filters'  => array(
            array(
                'name' => 'StringTrim'
            ),
        ),
        'validators' => array(
            array(
                'name' => 'NotEmpty',
                'options' => array(
                    'messages' => array(
                        NotEmpty::IS_EMPTY => 'Bitte geben Sie Ihren Benutzernamen ein.',
                    ),
                ),
            ),
            array(
                'name' => 'StringLength',
                'options' => array(
                    'min' => 3,
                    'max' => 45,
                    'messages' => array(
                        StringLength::TOO_SHORT => 'Der Benutzername muss mindestens 3 Zeichene lang sein.',
                        StringLength::TOO_LONG => 'Der Benutzername darf maximal 45 Zeichen lang sein.',
                    )
                ),
            ),
        ),
    )));
4

2 に答える 2

5

デフォルトでは、ZF2 フォームは、さまざまなフォーム要素のバリデーターを作成時に自動的に追加します。デフォルトが追加されないようにし、バリデーターのみを表示するには、フォーム コンストラクターに追加する必要があります。

$this->setUseInputFilterDefaults(false);

これにより、フォーム オブジェクトがこれらのデフォルト バリデータを追加できなくなります。独自の NotEmpty やその他の要素、カスタム メッセージを含むバリデーターを追加すると、デフォルトのメッセージの代わりにそのメッセージが使用されます。

于 2013-01-28T20:50:26.860 に答える
2

私が使っていたバージョンのバグでした。GitHub の最新リビジョンに更新すると、正常に動作します。

于 2012-08-24T09:25:35.563 に答える