email
などのフィールドを持つフォームがあります。このemail
フィールドは必須であり、一意である必要があります(制約があります)。すでに存在する電子メールアドレスを入力すると、フォームバリデーターは「この電子メールアドレスはすでに使用中です」と返します。それはokeyですが、フォームが発生したときにフォームを変更するには、固有の電子メール検証をスキップして有効なフォーム(送信時)を許可する新しいボタン「Invite」を追加します。特定の検証がトリガーされたときにフォームを動的に変更
:
マイルストーン:
- は、電子メールの検証がトリガされた動的フォームに "招待" ボタンを追加します。 。
- [招待]ボタンをクリックしたときの電子メールの検証を省略します。
最初のポイントを達成する方法を理解できません。検証制約がトリガされたときに動的にフォームを変更する方法
$resolver->setDefaults([
'validation_groups' => function (FormInterface $form) {
if ($form->has('invite') && $form->get('invite')->isClicked()) {
return false; //or ['invite'] if I want to keep other constraints
}
return ['Default'];
},
]);
:しかし、私は2番目のポイントは、このような何かを行うことができると思いますか?
ありがとうございました!
なぜ 'email'フィールドに' EmailUnique'制約があり、それで2回目の送信でそれをスキップするのですか?あなたが本当に必要がなければ、それを使わないでください。 –
@gp_sfloverこの新しいボタン "Join"はオプションで、ボタンがたくさんあるので、私は決定を下し、 "Join"ボタンを表示するための制約が必要です。 – presto
これはウィザード形式ですが、関連する情報のみを表示しています – presto