2011-07-14 9 views
3

私はSymfony 1.4のカスタムバリデータを作成したいと思います。私はそれが存在することを知っているが、私は自分のことを望む。symfonyのカスタムバリデータ

class sfValidatorName extends sfValidatorBase 
{ 

    protected function configure($options = array(), 
           $messages = array()) { 

     $this->addMessage('invalid', 'Invalid name!'); 
    } 

    protected function doClean($value) { 

    } 
} 

とどのように私は、例えば、この私の機能のために追加することができます:

if (count($letters) < 3) { 
     return 'too small'; 
    } else if (count($letters) > 43) { 
     return 'too long'; 
    } 

は私が

が存在しなければならない/myapp/lib/validator/sfValidatorName.class.phpを作成します

答えて

1

あなたの例はまさにsfValidatorStringの機能ですから、そのソースを見てみてはいかがですか?基本的には、関連するエラーコード(例:invalid、min_length、max_length、...)で検証エラーを投げるだけです。

デフォルトでは、すべてのバリデータに 'invalid'と 'required'というエラーがありますが、addMessage()で独自のバリデータを追加できます。

この特定の例では、sfValidatorStringを設定または拡張する方がずっと賢明です。

+1

この単純な例のために独自のバリデータを作成することを学習したいと思っています –

+0

次に、私のアドバイスに従って、sfValidatorStringを見てみましょう。 – Gerry

2
  1. オープン/lib/validator/sfValidatorString.class.php
  2. モデルその1つの後のあなたのバリデータ。
関連する問題