2011-07-13 6 views
3

私の学校プロジェクトでは、Zendでフォームを作成しようとしています。Zend Framework:首都文字を始めるためのバリデータを設定します

最初の文字を大文字にする必要がある検証ツールを挿入したいと思います。

このコードを変更するにはどうすればよいですか?

 $voornaam = $this->createElement('text', 'voornaam'); 
    $voornaam->setLabel('Voornaam:') 
      ->setAttrib('size', 50)->addValidator('StringLength', false,array(2,30)) 
       ->setRequired(true); 

誰でも私にこれを助けることができたら、事前に感謝!

+0

私は恐らくデフォルトでそのようなバリデータがありません。独自のバリデータークラスを作成し、これをフォーム要素に追加する必要があります。 –

答えて

3

たぶん、このカスタムバリデータは、参考になります。

class My_Validate_FirstCapital extends Zend_Validate_Abstract { 

    const CAPITAL = 'capital'; 

    protected $_messageTemplates = array(
     self::CAPITAL => "First letter is not capital" 
    ); 

    public function isValid($value, $context = null) {    

     if ($value != ucfirst($value)) { 
      $this->_error(self::CAPITAL); 
      return false; 
     } 

     return true; 
    }  
} 

私はそれをテストしていないが、動作するはずです。

もう1つの方法は、Zend_Validate_Regexを使用することです。

//match first capital letter 
$validator = new Zend_Validate_Regex(array('pattern' => '/^[A-Z]/')); 
// and add it to your element, ->addValidator($validator) 
+0

私は最初の答えを試しました。それは最善の解決策になるからです。私はそれを使用すべきクラスの前に置いています。私のフォームを記入し、提出を打つとき、私はエラーを取得しません。それを機能させるために私はもっと何をすべきですか? Zend_Validate_Regexソリューションは、魅力 – JorritK

+0

@ JorritKのように動作します。新しいバリデータ '$ v = new My_Validate_FirstCapital();'を作成し、要素に追加します(Zend_Validate_Regexなど)。 – Marcin

+0

作品は絶対に素晴らしい、私はまだ投票することはできませんが、できるだけ早く私はすることができます。どうもありがとう! :D – JorritK

0

このような場合には、正規表現バリデーターを使用できます。私は少し忙しいので、自由に入り、完全なコード例を提供してください。

ああ、誰かちょうどやったよ

関連する問題