問題タブ [yii-validation]
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.
php - Yii2: scenario() モデル メソッド
必要な機能は 2 つあります。登録時にパスワードを設定する機能と、ユーザーがパスワードを忘れた場合にパスワードを変更する機能です。ユーザーがサインアップするとき、パスワードの長さは少なくとも 4 文字である必要があります。変更が通過したとき - 少なくとも 5 文字。
ビューは、登録とパスの変更に共通です。明らかに、2 つのアクションも存在し、いずれかのシナリオで「サインアップ」または「変更」が使用されます。モデルのコード スニペット:
しかし、私はscenario()経由でやりたいです。どうやってするの?私は Yii の初心者なので、scenario()をいつ、どのように使用するかを理解していませんでした。ありがとう。
UPD。1 つのルールで 1 つのフィールドにscenario()を使用する必要がありますが、この 1 つのルールには異なる引数が必要です。Yii2でシナリオを定義するには? - それは私の場合ではありません。
php - Yii の条件付き検証ルール
Yii のカスタム検証ルールに問題があります。day1s
、day1e
、day2s
などのフィールドがありますday2e
。新しいレコードを作成する前に、これらの属性の値がデータベースに格納されているかどうかを確認したいと思います。また、別のユーザーIDも確認してください。値が既に存在する場合は、エラーを生成し、ユーザーに値を変更するように求めます。私はこのようなことをすることを考えました:
このような作業ですが、変更したいと思います。これのデフォルト値は です。"00:00"
このルールを設定すると、新しいレコードを作成するたびに、初回を除いてエラーが生成されます。のときは無視したいday1s==00:00
。また、ユーザーが変更された場合(私の場合、ユーザーはSchoolIDです)。その方法について頭を悩ませています。前もって感謝します!
php - Yii 1.1 動的フォームからの一意の電子メール値
私はYiiフォームacceptfirst name
とユーザーlast name
から持っていemail
ます。リンクを使用するadd more
と、ユーザーはこれら 3 つの要素の複数の行を追加できます。
電子メールの検証については、モデル ルールで設定されてunique
おりrequired
、すべて正常に動作します。add more
リンクをクリックすると追加行を作成するために JavaScript を使用しています。
問題
最初の行の値はJohn, Newman, johnnewman@gmail.com
で、2 番目の行は と入力してMathew, Heyden, johnnewman@gmail.com
います。この場合、メールアドレスが重複しています。検証ルール (require
およびunique
) のいずれも、これを検証できません。これを検証するためのより良い方法を提案できますか?
更新:
カスタム検証関数を作成しましたが、これで問題を解決するのに十分だと思います。カスタム検証関数でform data
/全体にアクセスする方法を教えてもらえますか?post data
ajax - TblActiveForm での ajax 検証
TblActiveForm で問題が発生しました。1 つのアクションでいくつかのモデルがあり、ajax で検証する必要があります。単純なサーバー検証は正常に機能しますが、ajax 検証を実行できません。ビュー ファイルには 3 つのタブがあり、それぞれに対応するモデルが表示されます。エラー メッセージは表示されません。これが私の行動です:
ファイルを閲覧する:
validation - 検証ルールが有効になっていないYii2でシナリオを作成するには?
MyEntity.phpモデルがあります。モデル スクリプトの一部として、いくつかのルールといくつかのシナリオが定義されています。
私はさまざまなシナリオを持つことができる必要があり、さまざまなアクションに対して特定の検証 (パラメーターによる) のみをアクティブにする必要があります。たとえば、actionOne の場合は scenario_one、actionTwo の場合は scenario_two などです。
コントローラーのコードの一部を次に示します。
ここで、検証がまったく行われてはならない scenario_three が必要です。データベースへの保存中に失敗しないように、コードに追加のチェックを行います。フォームの送信を妨げているため、検証が適用されていないことを確認する必要があります。どのシナリオも適用しない場合は、デフォルトのシナリオが適用されます (リストされているすべての検証がアクティブになります。これは、必要なシナリオとはまったく逆です)。