我有两个版本的相同表单,一个带有“用户名”字段,一个没有,我在运行时根据配置选项选择其中一个。
如果我可以写这个,请看这里
我希望:
val formWithUsername = formWithoutUsername ++ Form[FullRegistrationInfo](mapping(UserName -> nonEmptyText))
有没有类似的东西?
我有两个版本的相同表单,一个带有“用户名”字段,一个没有,我在运行时根据配置选项选择其中一个。
如果我可以写这个,请看这里
我希望:
val formWithUsername = formWithoutUsername ++ Form[FullRegistrationInfo](mapping(UserName -> nonEmptyText))
有没有类似的东西?
我不认为你可以,但尽量使UserName
字段映射成为可选的,这样当你不需要它时它就不会妨碍你:
mapping(
UserName -> optional(nonEmptyText.verifying(Messages(UserNameAlreadyTaken), userName => {
UserService.find(IdentityId(userName, providerId)).isEmpty
})),
...
)
由于案例类对应字段已经是可选的,所以不会有任何危害。
尽管如此,Password
这两种形式的映射并不相同。所以你应该保留它们,重构相似的部分。