0

同じフォームの 2 つのバージョンがあり、1 つは「ユーザー名」フィールドがあり、もう 1 つはありません。構成オプションに基づいて、実行時にそのうちの 1 つを選択しています。 代わりにこれを書くことができればいいのですが、ここを見てください:

val formWithUsername = formWithoutUsername ++ Form[FullRegistrationInfo](mapping(UserName -> nonEmptyText))

これに似たものはありますか?

4

1 に答える 1

1

できるとは思いませんが、UserNameフィールド マッピングをオプションにして、不要なときに邪魔にならないようにしてください。

mapping(
  UserName -> optional(nonEmptyText.verifying(Messages(UserNameAlreadyTaken), userName => {
    UserService.find(IdentityId(userName, providerId)).isEmpty
  })),
  ...
)

ケース クラスに対応するフィールドは既にオプションになっているため、害はありません。

それでも、Passwordマッピングは 2 つのフォームで同じではありません。したがって、類似した部分をリファクタリングして、それらをすべて保持する必要があります。

于 2013-08-21T14:32:25.533 に答える