問題タブ [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.

0 投票する
2 に答える
1517 参照

yii2 - 配列である属性のYii2モデルのカスタムルールと検証

これを整理しようとしていますが、どこにも行きません。モデルの属性として配列を取得しました。必要に応じて、配列内のいくつかのキーに対してカスタム検証を作成しようとしています。または、属性ラベルがどのように機能するかさえ理解できませんか? これが私のコードです:

モデル

配列全体を渡して、キーと値のバリデーターメソッドをチェックインしようとしましたが、カスタムバリデーターはトリガーされません。

0 投票する
1 に答える
491 参照

php - Yii2 バリデーターがメッセージを表示しない

誰かが私がここで間違っていることを教えてもらえますか?

私の問題は、バリデーターが正常に動作することですが、より大きなファイルをアップロードする場合に備えて、組み込みのエラーメッセージが表示されます。私が指定したものではありません'message' => 'Here goes my message'

そして、バリデーターが 2 つある場合、どうすれば自分の errorMessage を取得できますか?!

簡単な方法は、次のように検証を分割することだと思います。

しかし、まず、これらのメッセージを処理する必要があります。

編集:

問題が解決しました。ドキュメントを読むときはもっと注意する必要があります。ファイル サイズのカスタム メッセージには'tooBig'またはを使用する必要があり'tooSmall'ますが、拡張カスタム メッセージには を使用する必要があります'wrongExtension'

0 投票する
1 に答える
10986 参照

php - Yii2: パスワードの検証と再パスワードの比較

私は Yii の初心者です。そのため、何が問題なのかわかりません。ログイン、登録、および編集プロファイルに同じモデル (ユーザー) を使用しています。

ユーザーモデル:

スニペットを表示:

サイト コントローラのアクション:

プロファイル編集ページの更新シナリオを使用します。このシナリオでは password_repeat が必要で、パスワードと同じである必要があります。しかし、期待どおりには機能しません。 A:パスワードを入力せずにフォームを送信して再送信しようとすると、パスワードのみ「空白にすることはできません」というメッセージが表示されます。次に、パス入力のみに値を入力し、ページをリロードします (DB テーブルは変更されません)。リロード後、今回は repass フィールドに「空白にすることはできません」というメッセージが表示されます! しかし、最も奇妙なのは、次のページをリロードする前に、すべてが正常に機能することです。リロード後、A に移動します。:) シナリオを削除すると、検証ですべて問題ありません。でも消せない、

では、(シナリオ「更新」を使用して)正常に機能させるために、パス/リパス機能を使用して何をする必要がありますか? どこが間違い?

0 投票する
1 に答える
5014 参照

ajax - Yii2 ajax 検証とフォームの送信

AJAX の情報はほとんどありません。だからこそ、ここで質問をしたのです...

yii2では、ajax検証を使用してフォームを作成および送信するにはどうすればよいですか?

だから私は検索しましたが、正しい解決策を見つけることができませんでした...

例: (公式トレーニング サイトによると)

そしてコントローラーで:

私の問題:

1- ajax 検証

2-ajaxでフォームを送信

0 投票する
2 に答える
24885 参照

php - Yii2、属性名を含むカスタム検証メッセージ

ログインフォームではglyphicon-remove、すべての検証メッセージの最後に、対応するフィールド名を持つアイコンが必要です。そのため、以下のコードを で使用しましたLogin model

この上記のコードの代わりに、以下のコードのようなものを使用する方法はありますか?

上記のコードの考え方は、すべてのフィールドに対応するフィールド名を動的に取得することです。

必要なことをしてください。ありがとう。

アップデート

ここで使用したHTMLコード ( <span class="glyphicon glyphicon-remove"></span>) は、 を使用して正しく出力されencode=>'false'ます。しかし、私が必要としているのは、フィールドごとに個別に定義するのではなく、すべてのフィールドに共通に定義する必要があるということです。

0 投票する
2 に答える
2066 参照

php - Yii2、カスタム検証: clientValidateAttribute() が正しく機能しない

ActiveForm ウィジェットによって作成されたフォームがあります。ユーザーはそこにポーランドの郵便番号を入力します。適切なコントローラーで、入力したデータをDBに入れました。次に例を示します。

郵便番号の検証にスタンドアロンのバリデーターを使用することにしました。model でのこの属性の規則:

app/components/validators/PostalValidator クラス コード:

したがって、正しいコードの例は00-202です。

(ユーザー ロールで) 間違った値を入力すると、ページがリロードされ、Wrong postal code format.メッセージが表示されますが、clientValidateAttributeメソッドを再定義して を書きJS-validationました。次に、もう一度送信ボタンを押します。今回はページがリロードされずInvalid status input.、メッセージが表示されます (つまり、2 回目のプレス時間 JS がトリガーされます)。しかし、その後正しいコードを入力すると、Invalid status input.メッセージが表示されても何も起こりません。

clientValidateAttribute()それで、私の方法の何が問題になっていますか?validateAttribute()よく働く。

コントローラーからのスニペットの更新