2012-01-12 33 views
5

Zend_Validate_Dateは単に正しく動作しません。たとえば:Zend_Validate_Dateが正しく動作しません

$validator = new Zend_Validate_Date(array('format' => 'yyyy')); 

これが唯一の4桁の年受け入れる必要があり、単純なバリデータで、まだtrueを返します$validator->isValid('1/2/3')!本当に、Zend?これについて

またはどのように:でも、上記のコードで

$otherValidator = new Zend_Validate_Date(array('format' => 'mm/dd/yyyy')); 

$otherValidator->isValid('15/13/10/12/1222')戻りtrueすぎ!

私はZend Framework 1.11.9を使用しています。それは私だけか、これは本当に恐ろしい検証クラスですか? (更新:言い換えれば、私のコードに何か問題がありますか?これはバグですか?)

+0

何が問題なのですか?そのひどい検証クラスかどうか? – thetaiko

+2

あなただけの問題ではありません。[zf-7583](http://framework.zend.com/issues/browse/ZF-7583)[zf-10030](http://framework.zend.com/issues/ブラウズ/ ZF-10030) – drew010

+0

@thetaiko投稿の最後にあるUPDATEをご覧ください。 – fronzee

答えて

6

上記のコメントには、明らかにこのクラスのバグがあります。

$validator = new Zend_Validate_Regex(
    array('pattern' => '/^[0-9]{2}\/[0-9]{2}\/[0-9]{4}$/') 
); 
$validator->setMessage(
    "Date does not match the format 'mm/dd/yyyy'", 
    Zend_Validate_Regex::NOT_MATCH 
); 

うまくいけば他の誰かを助ける:ここで私はZend_Validate_Regexを使用して、思い付いた回避策があります。私は区切り記号としてスラッシュを使用したいだけで、ドットやダッシュは付けないようにしてください。

関連する問題