0

我有两个版本的相同表单,一个带有“用户名”字段,一个没有,我在运行时根据配置选项选择其中一个。 如果我可以写这个,请看这里
我希望:

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这两种形式的映射并不相同。所以你应该保留它们,重构相似的部分。

于 2013-08-21T14:32:25.533 回答