2017-01-26 25 views
0

當我嘗試從帶有驗證錯誤的表單中提取用戶時,出現錯誤。從表單中獲取對象與框架2.0中的錯誤

我在routes文件配置了以下路線:

GET  /users/:user   controllers.UsersController.viewUser(user: models.User) 
GET  /users/:user/edit  controllers.UsersController.editUser(user: models.User) 

這是好的,在這一點上,我可以呈現從我的斯卡拉模板,用戶視圖的鏈接:

routes.UsersController.viewUser(myUserObject) 

我的問題是,在我的用戶版形式中,我需要從Form[User]對象獲得myUserObject。什麼我目前做的是:

routes.UsersController.viewUser(userForm.get) 

然而,當userForm有任何錯誤,get方法拋出一個異常,如圖the documentation

我採取的是通過附加User參數階視圖,連同Form[User]參數我經過到現在爲止,我的意思是這種方法,

userEdit.render(user, userForm) 

,而不是僅僅

userEdit.render(userForm) 

但是,我想知道是否有更合適的解決方案,不涉及包括一個額外的參數。

在此先感謝。

回答

0

documentation狀態,你可以預填表格與現有數據:

val filledForm = userForm.fill(User("Bob", 18)) 

鑑於已有的User,它應該是微不足道的,以適應你的榜樣。

+0

驗證錯誤後,表單應該填入用戶輸入的信息,而不是已經存在於數據庫中的信息。這條指令是否會覆蓋用戶輸入的信息? – Bustikiller

+0

我這麼認爲,但是當表單包含錯誤時,您可以用用戶數據填寫表單。而不是做'userForm.get',你應該看看'userForm.fold'。在這種情況下,您需要明確處理用戶輸入錯誤數據的情況 – irundaia

相關問題