2

Zend Framework で検証ロジックを実装する方法の例をいくつか探しています。

私の理想的な実装では、検証をコントローラーの外部に保持し、「パスワードの確認」フィールドとファイルのアップロードを検証できるようにします。

4

4 に答える 4

5

Zend_Formフォームに使用していますか?それぞれのフォーム内でバリデーターを適用する傾向がありますZend_Form_Element。これは私がそれを行う方法です:

class Form_Login extends Zend_Form
{
    public function init() {
        $this->setMethod('post');

        $validator = new Zend_Validate_Regex('([A-Za-z0-9]+)');
        $validator->setMessage(
        'Your username can only contain letters, numbers and underscores (_).');

        $username = new Zend_Form_Element_Text('username');
        $username->setLabel('Your Username');
        $username->setDescription('The username you use to login');
        $username->setAllowEmpty(false);
        $username->setRequired(true);
        $username->addValidator($validator);

        $submit = new Zend_Form_Submit('login');
        $submit->setLabel('Login');

        $this->addElements(array($username, $submit));
    }
}

(エラーメッセージのカスタマイズ)

そして、コントローラーで:

// $form is an instance of the extended Zend_Form
if (!$form->isValid()) {
    $validator->getMessages()
    // flashMessenger helpers or just simple view appends
}

私の理想的な実装は、検証をコントローラーの外部に保持し、「パスワードの確認」フィールドとファイルのアップロードを検証できるようにすることです。

リファレンス ガイドで確認用のパスワード バリデータについて言及しているのを見たことがありますが (ただし、現在は見つけることができません)、Google で簡単に見つけることができるはずです。

ファイルのアップロードでは、必ずカスタム バリデータを作成する必要があります。

于 2009-01-05T15:41:43.113 に答える
2

おそらくあなたはをておくべきです。Matthew Weier O'Phinney(Zend Fraeworkコア開発者の1人)は、慣れる必要のあるアプローチを示していますが、一見の価値があります。

于 2009-01-05T20:51:58.230 に答える
0

特に「パスワードの確認」タイプの検証については、Zym Framework (Zend Framework 拡張機能) を確認してください。この正確な目的のためにバリデーターが組み込まれています。Zym_Validate_Confirmクラスを試してください。

于 2009-01-06T00:48:32.730 に答える
0

はい、これはデータ検証を行うための推奨される方法です。ありがとう!もっと例を見たいです。

HTML に関して言えば、私は一種のコントロール マニアなので、Zend_Form には近づかないようにしています。大幅にカスタマイズできることはわかっていますが、ある時点で障害にぶつかったことを覚えているので、プレーンな html フォームを使用することにしました。

于 2009-01-05T16:08:42.700 に答える