4

Zend Framework 2 でユーザー登録フォームを検証しようとしています。

より具体的には、電子メールを検証する方法、ZF1 i でできること:

$email->setValidators( array(new Zend_Validate_EmailAddress()) );

このようなものを呼び出すことができるかどうか疑問に思っています。

また、パスワード フィールドとパスワード検証のように、同じにする必要がある 2 つのフィールドを検証する方法も知りたいです。

私が言うとき、これはすべての検証のためにメソッドをif($form->isValid())..チェックすると思います。getInputFilter()

私はZfcUserモジュールを見てきましたが、ZF2がどのように機能するかを完全に把握していないため、今のところあまり理解できません

簡単な例かもしれませんが、アイデアはありますか?

ありがとう

4

2 に答える 2

8

新しい ZF2コンポーネントがどのように機能するかを確認するために公式チュートリアルを読みましたか?Form

Form非常に高いレベルでは、オブジェクトとFilterオブジェクトが連携する必要があります。オブジェクトは、Filterフィルタとバリデータを配置する場所です。ただし、タイプのフォーム要素を で使用すると、正しいバリデータが自動的に追加さEmailAddressれます。Form詳細については、マニュアルを参照してください。

私は最近、このページで見つけることができるはずの Zend のフォームに関するウェビナーを行いました。

于 2012-10-11T06:56:39.823 に答える
1

私はそれを理解しました。

バリデータは多次元配列であり、各配列には名前といくつかのオプションがあります。最初は少し配線されていることに気付くかもしれませんが、zf2 の多くの設定はこのようになっています。

パスワードの例を参照してください。

$inputFilter->add($factory->createInput([
            'name' => 'password',
            'required' => true,
            'filters' => [ ['name' => 'StringTrim'], ],
            'validators' => [
                [
                    'name' => 'StringLength',
                    'options' => [
                        'encoding' => 'UTF-8',
                        'min'      => 6,
                        'max'      => 128,
                    ],
                ],
            ],
        ]));

        $inputFilter->add($factory->createInput([
            'name' => 'password_verify',
            'required' => true,
            'filters' => [ ['name' => 'StringTrim'], ],
            'validators' => [
                array(
                    'name'    => 'StringLength',
                    'options' => array( 'min' => 6 ),
                ),
                array(
                    'name' => 'identical',
                    'options' => array('token' => 'password' )
                ),
            ],
        ]));

php 5.3 では、配列はarray()or[]のように記述できることに注意してください。上記の例では、特に理由もなくそれらを混同しています。

于 2012-10-12T06:51:34.953 に答える