2012-04-20 14 views
0

私のコントローラにはいくつかのデータセットがあり、クライアントからいくつかの値を送ることはできません(ロジックにエラーはありません)。データベース内の対応するフィールドを変更します。しかし、値が空の文字列の場合はエラーをスローしたいと思います。Zend Frameworkの検証:空の文字列を検証し、null値を検証しない

標準のバリデータでどうすればいいですか?

例:

ユーザーには、ユーザー名とパスワードの2つのフィールドがあります。プロフィールのユーザーは、プロフィールのいずれかまたは両方を変更できます。プロファイルは、オプションwriteAllFields: falseでプロキシが設定されたExtJS 4で書かれているので、クライアントは変更されたフィールドのみをサーバに送信します。

サーバー側で

例えば、ユーザ名

  • $this->_request->getPost('username')
  • $this->_getParam('username')

...または何か他のもの(それのnull)を経由していない、場合、私はしたくありませんそれを検証し、データベースで修正します。

しかしユーザーがユーザー名フィールドに空の文字列を入力した場合、私はそれを検証し、「ユーザ名が空にすることはできません」のようなテキストでユーザーにエラーを表示したいです。

これはどのように達成できますか?

+0

具体的な例を挙げてお手伝いいたします。 – Liyali

+1

おそらく 'NotEmpty'バリデーターか' setRequired'のような音があなたが探しているものです。 – drew010

+0

あなたはいくつかの例を書くことができますか? –

答えて

0

私は個人的に入力をフィルタリングして検証します。しかし、あなたの目標を達成するために、これはおそらく、そのまっすぐなフォームを作成するために、Zendのフォームを使用している場合に適用される何drew010言及docs.

$valid = new Zend_Validate_NotEmpty(); 
$value = ''; 
$result = $valid->isValid($value); 
// returns false 

から、トリックを行うだろう。その場合、要素自体にsetRequired()バリデーターをtrueに設定すると、入力がない場合にユーザーにエラーが表示されます。 Zend Formを使用していない場合は、上の方が正しい方向を指しているはずです。