Play Framework/Scala: 编辑表单对象中的数据
Play Framework/Scala: Editing data in a form object
如何编辑表单数据图中的元素?
假设您通过...
绑定接收到的数据
val form = User.userEditForm.bindFromRequest
...然后使用 fold 测试是否一切正常....
form.fold (formWithErrors => {
BadRequest(views.html.userEditForm(formWithErrors))
},
new_user => {
.....
}
。在第一个分支 "formWithErrors" 中,您重新显示表单并将 formWithErrors 作为参数传递。
假设我们有一个字段密码,并且我们希望在重新显示表单进行更正之前清空该字段。
或者我们想通过删除每个字段 beginning/end 处的所有空格来清理 form.data 中的所有字段。
如此简单的问题如何更新 form.data 哈希图中的任何字段?
Form
是个caseclass,所以可以用copy
的方法复制新的数据进去:
val form = Form {
mapping(
"email" -> email,
"password" -> nonEmptyText,
"something" -> number
)
}
form.bindFromRequest.fold (
formWithErrors => {
BadRequest(views.html.userEditForm(
formWithErrors.copy(data = formWithErrors.data + ("password" -> ""))
))
},
user => ...
)
如何编辑表单数据图中的元素? 假设您通过...
绑定接收到的数据val form = User.userEditForm.bindFromRequest
...然后使用 fold 测试是否一切正常....
form.fold (formWithErrors => {
BadRequest(views.html.userEditForm(formWithErrors))
},
new_user => {
.....
}
。在第一个分支 "formWithErrors" 中,您重新显示表单并将 formWithErrors 作为参数传递。
假设我们有一个字段密码,并且我们希望在重新显示表单进行更正之前清空该字段。 或者我们想通过删除每个字段 beginning/end 处的所有空格来清理 form.data 中的所有字段。 如此简单的问题如何更新 form.data 哈希图中的任何字段?
Form
是个caseclass,所以可以用copy
的方法复制新的数据进去:
val form = Form {
mapping(
"email" -> email,
"password" -> nonEmptyText,
"something" -> number
)
}
form.bindFromRequest.fold (
formWithErrors => {
BadRequest(views.html.userEditForm(
formWithErrors.copy(data = formWithErrors.data + ("password" -> ""))
))
},
user => ...
)