我有一个包含 2 个字段的表单 -empno
和name
. 两者都用默认值填充。在视图中显示时,我想要empno
的是只读且name
可编辑的。
在视图创建中,我使用@leaveform.value.get.empno
的是仅显示就绪并且工作正常。该问题仅在插入错误时发生([NoSuchElementException: None.get])
。
问题:
- 问题是返回错误没有值属性。我还能用什么来获得价值?
- 我可以跳过
@inputText
只读字段吗?
请参阅下面我的代码:
// ***** CONTROLLER *****//
val leaveform = Form[LeaveModel](
mapping(
"empno" -> nonEmptyText,
"name" -> nonEmptyText
)((no, empno) => LeaveModel(empno, name))
((leave: LeaveModel) => Some(leave.empno, leave.name))
)
def create = withAuth { username => implicit request =>
// Define default values
val empno = "STUDENT"
val name = ""
// Set default values
val filledForm = leaveform.fill(LeaveModel(empno,name))
Ok(html.leave.form(filledForm))
}
def insert = Action (
implicit request => {
leaveform.bindFromRequest.fold(
error => {
BadRequest(html.leave.form(error)) // Question 1. Here is the error.
},
leave => {
LeaveModel.insert(leave)
Redirect(routes.indexController.index())
}
)
}
)
// ***** VIEW START***** //
@(leaveform: Form[LeaveModel])
@leaveform.value.get.empno
@helper.form(
action = (routes.LeaveController.update(oid)),
'id -> "leaveform") {
@inputText(leaveform("empno")) // Question 2.
@inputText(leaveform("name"))
}