1

そこで、Dateというカスタムの日付検証ツールを作成しました。これを試して使用すると、zendはzend_validate_date呼び出しにフォールバックします。

    $datePosted = new Zend_Form_Element_Text('datePosted');
    $datePosted->setLabel('Date Job Was Posted?: ')
            ->setRequired(true)
            ->addFilter('stripTags')
            ->addFilter('stringTrim')
            ->addPrefixPath('Hg2_Validate_Date', 'Hg2/Validate/', 'validate')
            ->addValidators(array(
                array(
                    'validator' => 'NotEmpty',
                    'breackChainOnFailure' => true
                ),
                array(
                    'validator' => 'stringLength',
                    'options' => array(0, 10)
                ),
                array(
                    'validator' => 'Date'
                ),
                array(
                    'validator' => 'alnum',
                    'options' => array('allowWhiteSpaces' => true)
                )
            ));

    return $datePosted;

これは私が持っているものであり、それは私の日付を使用する必要があり、zendsの日付ではありませんか?

カスタム検証は、この要素にカスタムバリデーターを追加するaddPrefixPath()で確認できます。私の理解では、「バリデーター」で日付または以下の日付を呼び出すと、ゼンドではなく日付が呼び出されますか?

4

1 に答える 1

3

_Dateプレフィックスとして、パスにを追加する必要はありません。ドキュメントを見れば

addPrefixPath($prefix, $path, $type = null)
adds a prefix/path association to the loader specified by $type.

現在のプレフィックス引数を使用すると、これはおそらく、Hg2_Validate_Date_Date見つからないという名前のクラスに拡張されます。

だからこれはあなたのために働くはずです

->addPrefixPath('Hg2_Validate', 'Hg2/Validate/', 'validate')
于 2012-11-24T14:36:05.330 に答える