問題タブ [zend-validate]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
zend-framework - Zend Db_NoRecordExists - 複数の列に対するチェック
Zend Db_NoRecordExists ドキュメントは、1 つの列のみをチェックするように制限されているようです。エントリを検証するときに複数のキーをチェックする方法はありますか? たとえば、異なる都市に同じメール アドレスを使用できるようにしています。
これが私の現在のバリデータです:
usercities テーブルには 2 つの列があります。 email varchar(64) city_id tinyint
これらの列の組み合わせを確認できるようにしたい。これは可能ですか?カスタムバリデータを作成する必要があると思います。カスタムクラスに頼らずにそれを行うことはできますか?
ありがとう!
王子
php - Zendで多次元配列を検証する方法は?
Zend_Validate
を使用して多次元配列を検証するための最良の方法は何でしょうかZend_FilterInput
。
これが私の現在のコードです:
ここに配列、たとえば配列を追加したいと思いますname[]
(2つまたは3つの名前の配列を投稿します)。
サンプル$_POST
配列は次のとおりです。
php - Zend Form Edit と Zend_Validate_Db_NoRecordExists
私は、自分で使用するためのユーティリティ Web サイトをいくつか構築することで、Zend のスキルをゆっくりと築き上げています。私は Zend Forms と Form validation を使用してきましたが、Zend のやり方を理解できたことに満足しています。しかし、Zend_Validate_Db_NoRecordExists() を編集フォームのコンテキストで使用する方法と、一意である必要があるデータベース列にマップするフィールドについて少し混乱しています。
たとえば、この単純なテーブルを使用して
テーブル テストに新しい行を追加するだけの場合は、データ フィールドの Zend フォーム要素にバリデーターを次のように追加できます。
フォームの検証時に、このバリデーターは Data 要素の内容がテーブルにまだ存在しないことを確認します。したがって、Test への挿入は、データ フィールドの UNIQUE 修飾子に違反することなく続行できます。
ただし、Test テーブルの既存の行を編集する場合は状況が異なります。その場合、バリデーターは、要素の値が相互に排他的な 2 つの条件のいずれかを満たすことを確認する必要があります。
ユーザーが要素の値を変更しましたが、新しい値は現在テーブルに存在しません。
ユーザーは要素の値を変更していません。したがって、値は現在テーブルに存在します (これは問題ありません)。
Zend Validation Docsでは、検証プロセスからレコードを除外する目的で NoRecordExists() バリデーターにパラメーターを追加することについて説明しています。「一致する行を探してテーブルを検証しますが、フィールドにこの特定の値があるヒットは無視する」という考えです。このような使用例は、テーブルの編集時に要素を検証するために必要なものです。1.9 でこれを行うための疑似コードは次のようになります (実際、これは 1.9 のソース コードから取得したものです。現在のドキュメントは間違っている可能性があります)。
問題は、除外される値 ($Value) がインスタンス化された時点で (フォームがインスタンス化された時点でも) バリデーターにバインドされることです。ただし、フォームがレコードを編集している場合、その値は、フォームに最初にデータが入力されたときの $data フィールドの内容にバインドする必要があります。つまり、Test テーブルの行から最初に読み取られたデータ値です。しかし、典型的な Zend パターンでは、フォームは 2 つの別々のステップでインスタンス化され、入力されます。これにより、除外値を目的の要素値にバインドすることができなくなります。
次の Zend 疑似コードは、$Value を NoRecordExists() バリデーターにバインドする場所を示しています (これは Zend コントローラーの一般的なパターンであることに注意してください)。
Zend_Form をサブクラス化し、populate() メソッドをオーバーライドして、最初のフォーム作成時に NoRecordExists() バリデーターをワンショット挿入することもできますが、それは私には大きなハックのように思えます。だから私は他の人がどう思うか知りたかったのですが、この問題を解決するパターンがすでに書き留められていますか?
2009-02-04 を編集
この問題に対する適切な解決策は、カスタム バリデータを作成し、Zend バージョンを忘れることだけだと私は考えています。私のフォームには非表示フィールドとしてレコード ID があるため、テーブル名と列名を指定して、一意性をテストし、そのような ID を持つ行を除外する SQL を作成できます。もちろん、これにより、モデルが非表示にするはずの dB レイヤーにフォームを結び付ける方法について考えるようになりました。
php - Zend Frameworkフォームで日時バリデーターを作成するにはどうすればよいですか?
デフォルトでは、ZendFrameworkの日付バリデーターは日付形式を使用しますyyyy-MM-dd
。
しかし、時間と分の検証を追加したいと思います。つまり、ユーザーに時間と分を入力してもらいたいのです。ただし、以下は機能しません。
を入力する2010-02-01
と、日付が形式に合わないというエラーが表示されます。入っ2010-02-01 3
ても文句はありません。2010-02-01 03:00
これは、ユーザーが指定された形式で日付を入力することを強制するのではなく、ユーザーが意味することを前提としています。
日付を指定された形式で入力する必要があることを強制するにはどうすればよいですか?
zend-framework - Zend Framework で日付が今日以降かどうかを検証する日付バリデーター
要素が日付形式であると仮定します。指定された日付が今日以降であることを確認するにはどうすればよいですか?
zend-framework - Zendフレームワークバリデーターに問題がある
エラーを返さないカスタムビルドのバリデーターに問題があります。ファイルNotEmpty.phpフォームフォルダーlibrary/Zend / Validateをコピーし、クラスZend_Validate_NotEmptyの名前をMy_Validate_EmailConfirmationに変更して、フォルダーMy/Validateに配置しました。
このクラスを ->setRequired(true)-> addValidator('NotEmpty'、true、array('messages' => array('isEmpty' => "bla")));のように呼び出すと、 正しいエラーが表示されますが、 -> setRequired(true)-> addValidator('EmailConfirmation'、true、array('mess ages' => array('isEmpty' => "bla")))-のように呼び出すと> addPrefixPath('My_Validate'、'My / Validate /'、'validate'); 何も得られない...
私は何が間違っているのですか?あなたの答えに感謝します...
php - Zend フォームバリデーターがトリガーされない
UniqueEmail バリデーターを機能させようとしていますが、バリデーターがトリガーされないようです。
これは私のフォームです:
}
そして、ここに私のバリデーターがあります
行を追加すると
isValid() 関数の最初の行で、フォームを実行します。その後、コードは実行されますが、バリデータには入らないようです。
zf 1.10.1 を実行していますが、アイデアや提案はありますか?
php - カスタマイズされたエラー メッセージを持つ zend フォーム要素のカスタム バリデータを作成するにはどうすればよいですか?
使用できる文字のリストを含む質問フィールドがあります: A ~ Z、0 ~ 9、コロン (:)、疑問符 (?)、カンマ (,)、ハイフン (-)、アポストロフィ (')。私はファッションでうまく動作する正規表現を持っています:
デフォルトのエラー メッセージは、「パターンが一致しません」のようなものです。
「このフィールドでは許可されていません」というカスタム エラー メッセージを書きたい
不足している既存の zend コンポーネントを使用してそれを行う簡単な方法はありますか?
カスタムバリデータを書くことは、私が達成しようとしていることを達成する唯一の方法ですか? はいの場合、カスタムバリデータを作成するにはどうすればよいですか(ドキュメントを見て、エラーメッセージをカスタマイズする方法がよくわかりませんでした)他の方法がある場合は、その入力もいただければ幸いです。
これに答えてくれてありがとう!
php - Zend Framework でのファイル検証の一時停止
現在、私のアプリケーションには、ロゴとして使用する画像ファイルをアップロードするようにユーザーに依頼するフォームがあります。ユーザーがファイルを指定せずに(ブラウザからアップロードボタンを押すだけで)それを何もリセットできないようにしたい。
このシナリオでは、ファイルが含まれていない場合にファイルの検証を一時停止するだけです。現在、 Zend_Validate_File_Uploadクラスからself::NO_FILEエラーが発生します。
ファイルが提供されていない場合に何もチェックされないように、検証を一時停止する方法はありますか?
php - symfony、doctrine、または zend_validate で入力データを検証しますか?
doctrine と zend で symfony を使用しています。
ユーザー入力データを検証したいのですが、symfony、zend、または doctrine からの検証を使用する必要がありますか?
私は symfony を使うべきだと思いますが、zend や doctrine からの検証の方が良い場合はありますか?
ありがとう