Yii2 ActiveForm を使用して、デフォルトのテンプレート化された登録フォームを作成しています。フォームで、ユーザーは登録を完了するためにサインアップ キーを指定する必要があります。サインアップ キーの長さは 6 ~ 10 文字にする必要があります。
問題があるものを除いて、フォームの他のすべての検証ルールを削除しました。ルールは適用されていますが、デフォルトのフォーム検証メッセージをレンダリングしています。
問題のルールは次のとおりです。
[
'betaKey',
'string',
'length' => [6, 10],
'message' => 'Signup Codes are between 6 and 10 characters.'
]
上記のルールが適用されています。これは、長さを変更する[2, 10]
とルールがトリガーされなくなるためです。ドキュメントを読みましたが、何か見落としがあれば遠慮なくお知らせください。
Yii によってレンダリングされる JavaScript は次のとおりです。
yii.validation.string(value, messages, {
"message": "Signup Codes are between 6 and 10 characters.",
"min": 2,
"tooShort": "Beta Key should contain at least 2 characters.",
"max": 10,
"tooLong": "Beta Key should contain at most 10 characters.",
"skipOnEmpty": 1
});
message
バリデータによってレンダリングされることはありません。Yii2 の他のすべてのコアバリデータはmessage
、カスタム エラー メッセージを指定するために使用します。ここでそうではないのはなぜですか?