我有两个相同形式的版本,一个带有“username”字段,另一个没有,我在运行时根据配置选项选择其中一个。
Please have a look here
我希望我能写这个:
val formWithUsername = formWithoutUsername ++ Form[FullRegistrationInfo](mapping(UserName -> nonEmptyText))
有类似的东西吗?
答案 0 :(得分:1)
我认为你不能这样做,但是尝试使UserName
字段映射可选,这样当你不需要时它就不会妨碍你:
mapping(
UserName -> optional(nonEmptyText.verifying(Messages(UserNameAlreadyTaken), userName => {
UserService.find(IdentityId(userName, providerId)).isEmpty
})),
...
)
由于案例类对应字段已经是可选的,因此不会有任何损害。
但是,Password
映射对于这两种形式并不相同。所以你应该把它们全部保留下来,重构类似的部分。