問題タブ [yii2-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.
yii2-advanced-app - ルールのyii2カスタム検証が機能しない
yii2 でカスタム検証を実装するには?
モデルルールの私のコードは
他に私がしなければならないことはありますか?
php - 挿入が速すぎると Yii2 Unique Validator が機能しない
データを保存するために ActiveRecord モデルを使用しています。
Unique Validator
非常に完璧に動作します。しかし、データを非常に速く挿入すると、完全に機能しなくなります。一部のリクエストで、Yii でキャッチできないというエラーが表示されます。
整合性制約違反– yii\db\IntegrityException SQLSTATE[23000]: 整合性制約違反: 1062 エントリ '***' が重複しています...
別のサービスを追加せずにこの問題を処理する解決策はありますか?
ありがとう !
yii2 - 配列フィールドの Yii2 必須バリデーター
私のコードには、JS を介して追加の機能を実装したフィールド (たとえば、フィールド名はexampleField[] ) があります。各フィールドに Yii2 に必要な Validtorを実装したいと考えています。すでに各バリデータを使用していますが、機能していません。私の yii2 バージョンは 2.0.6 です。ありがとうございます
ここに私のJavaScriptコードがあります
php - シナリオで ajax 検証を持つフィールドの検証メッセージを設定するには? - Yii2
2 つのフォームに 1 つのモデル ファイルを使用しています。1 つはSIGNUP用、もう 1 つはメンバーの追加用です。
SIGNUPフォームのシナリオは設定しませんでした。ただし、メンバー追加フォームのシナリオは設定されています。
モデル
意見
ここでは、 のようなシナリオを設定します$modelTeamMembers->scenario = 'addteammembersidebar';
。
フィールドを除くすべての検証エラー メッセージが機能しemail
ます。'enableAjaxValidation' => true
フィールドから削除すると、機能します。しかし、私にとって'enableAjaxValidation' => true
は必須です。
画像
画像のように、「メール アドレスを入力してください。」というエラー メッセージが表示されることがはっきりとわかります。フィールド検証エラー メッセージのみが正しく表示されません。すべてが大丈夫であることを除いて。email
email
シナリオのフィールドに検証メッセージを設定するには? ヘルプ/ヒント/提案はかなりのものです。
php - 正規表現 yii2 電話番号バリデーター
yii2 の正規表現バリデーターを使用して、次の電話番号を検証しようとしています。
このような
しかし、これらの電話番号の正しい正規表現を取得できません。yii2 でこれを行う別の方法はありますか。
validation - 少なくとも 2 つのオプションを選択する必要がある検証規則
次の検証ルールがあります。
この属性は、 Select2ウィジェット (複数選択)dagen_ids
によって入力される配列です。
私が達成すべきことは、ユーザーが少なくとも2 つのオプションを$model->frequentie == 2
選択する必要がある場合にのみ必要な検証ルールを持つことです。
2番目の部分では、次のインライン検証コードを試しましたが、残念ながら効果がないようです..
誰かが私をもう少し助けて、これらの検証ルールを組み合わせる方法を説明してもらえますか?
編集
コントローラ:
JQuery:
yii2 - Yii2 の場合の検証
2 組の入力フィールドのうち、どちらか一方だけが必要です。検証を正しく行うことができません。
listing_image_url
が null の場合にposter_image_url
のみ必要です。$model->listingImage
も使ってみstrlen($model->listingImage) == 0
ました。
上記と同じですが、逆です。
activerecord - Yii2: ActiveRecord でデフォルトの属性値を設定するには?
これは些細な質問のように思えるかもしれませんが、私が考えることができる明白な解決策にはすべて、独自の欠陥があります。
私たちが望むのは、新しいレコードのみにデフォルトの ActiveRecord 属性値を設定できるようにすることです。これは、検証前および検証中に読み取り可能になり、検索に使用される派生クラスに干渉しないようにするためです。
クラスをインスタンス化したらすぐにデフォルト値を設定して準備する必要があるため(new MyModel)->attr
、デフォルト値が返されますattr
。
いくつかの可能性と問題点を次に示します。
A)
MyModel
メソッドをオーバーライドし、trueのinit()
場合にデフォルト値を割り当てます:isNewRecord
問題: 検索。デフォルトの属性を明示的に設定解除しない限り
MySearchModel
(忘れやすいため、非常にエラーが発生しやすくなります)、search()
派生MySearchModel
クラスで呼び出す前に値が設定され、検索が妨げられます (attr
属性は既に設定されているため、検索が返されます)。間違った結果)。Yii1.1 では、これは を呼び出すunsetAttributes()
前に を呼び出すことで解決されてsearch()
いましたが、Yii2 にはそのようなメソッドはありません。B)メソッドを次のようにオーバーライド
MyModel
します。beforeSave()
問題: 保存されていないレコードに属性が設定されていません。
(new MyModel)->attr
ですnull
。さらに悪いことに、この値に依存する他の検証ルールでさえ、検証後にbeforeSave()
呼び出されるため、この値にアクセスできません。C)検証中に値が使用可能であることを確認するには、代わりに
beforeValidate()
メソッドをオーバーライドして、次のようにデフォルト値を設定します。問題: 保存されていない (検証されていない) レコードに属性がまだ設定されていません。
$model->validate()
デフォルト値を取得したい場合は、少なくとも呼び出す必要があります。D)
DefaultValidator
inを使用しrules()
て、検証中にデフォルトの属性値を次のように設定します。問題: B) および C) と同じ。実際にレコードを保存または検証するまで、値は設定されません。
では、デフォルトの属性値を設定する正しい方法は何でしょうか? 概説された問題のない他の方法はありますか?