1

使用できる文字のリストを含む質問フィールドがあります: A ~ Z、0 ~ 9、コロン (:)、疑問符 (?)、カンマ (,)、ハイフン (-)、アポストロフィ (')。私はファッションでうまく動作する正規表現を持っています:

 $question->addValidator('regex', true, array(<regular expresstion>))

デフォルトのエラー メッセージは、「パターンが一致しません」のようなものです。

「このフィールドでは許可されていません」というカスタム エラー メッセージを書きたい

不足している既存の zend コンポーネントを使用してそれを行う簡単な方法はありますか?

カスタムバリデータを書くことは、私が達成しようとしていることを達成する唯一の方法ですか? はいの場合、カスタムバリデータを作成するにはどうすればよいですか(ドキュメントを見て、エラーメッセージをカスタマイズする方法がよくわかりませんでした)他の方法がある場合は、その入力もいただければ幸いです。

これに答えてくれてありがとう!

4

1 に答える 1

2

はい、カスタムバリデーターはあなたのニーズに合っています。書き方はこちらのマニュアルを参照してください。

コード スニペットに関しては、雇用主 ID を検証するための単純なバリデーター (部分) を次に示します。

protected $_messageTemplates = array(
    self::UNIQUE => 'The id provided is already in use',
    );

public function isValid($value, $context = null)
{
    $this->_setValue($value);

    $personnel = new Personnel();
    $isValid = true;

    if( $personnel->isExistingIdEmployee($value) && ($value != $this->_id) ) {
        $this->_error(self::UNIQUE);
        $isValid = false;
    }

    return $isValid;
}
于 2010-04-14T03:48:58.970 に答える