2013-09-29 26 views
0
val registrationForm: Form[Registration]=Form(
mapping(
"fname"->text(minLength=2), 
"lname"->text(minLength=1), 
"userEmail"->text(minLength=5), 
"userPassword" -> tuple(
"main" -> text(minLength = 6), 
"confirm" -> text 
).verifying(
// Add an additional constraint: both passwords must match 
"Passwords don't match", userPassword => userPassword._1 == userPassword._2 
), 
"gender"->number, 
"year"->number, 
"month"->number, 
"day"->number 
) 
{ 
// Binding: Create a User from the mapping result (ignore the second password and the 
accept field) 
(fname, lname, userEmail, userPassword, gender, year, month, day, _) => 
Registration(fname,lname,userEmail,userPassword._1, gender, year,month,day)//error here 
} 
{ 
// Unbinding: Create the mapping values from an existing User value 
user => Some(user.fname, user.lname, user.userEmail,(user.userPassword, ""), 
user.gender, user.year, user.month, user.day, false) 
} 

)//end registrationForm 

我的情况下类是 -如何映射具有比情况下类多个属性形式发挥2阶

case class Registration(fname:String, lname:String, userEmail:String, 
userPassword:String, gender:Int, year:Int,month:Int, day:Int) 

上面的代码是给无差错错号的参数;预期= 8.我对发生错误的行发表评论

回答

1

您需要在绑定表单时删除_

// Binding: Create a User from the mapping result 
// (ignore the second password and the accept field) 

(fname, lname, userEmail, userPassword, gender, year, month, day) => 
Registration(fname, lname, userEmail, userPassword._1, gender, year, month, day) 

此外,您可能不想在解除绑定表单时输入密码。

// Unbinding: Create the mapping values from an existing User value 

user => Some(user.fname, user.lname, user.userEmail, ("", ""), 
      user.gender, user.year, user.month, user.day) 
+0

谢谢shrey。现在它工作 –

+0

欢迎来到SO!你可以通过接受答案来解决问题。 – Shrey

相关问题