2013-08-21 30 views
0

我有兩個版本的同一個表單,一個帶有「用戶名」字段,另一個沒有,並且我在運行時根據配置選項選擇其中的一個。 Please have a look here
我想,如果我可以這樣寫,而不是:複製表單對象並添加新字段

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

有沒有類似這樣的東西嗎?

回答

1

我不認爲你可以,但儘量使UserName字段映射可選的,所以它不會讓你的方式,當你不需要它:由於案例類相應

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

字段已經是可選的,不會有任何傷害。

儘管如此,Password映射對於兩種形式並不相同。所以你應該保留它們,重構相似的部分。

相關問題