2つのフィールドを持つフォームがあります-empno
とname
。どちらもデフォルト値でいっぱいになります。ビューに表示する場合、empno
読み取り専用でname
編集可能です。
ビューの作成では、@leaveform.value.get.empno
ready-onlyを表示し、正常に動作するために使用しています。この問題は、エラーのある挿入中にのみ発生します([NoSuchElementException: None.get])
。
質問:
- 問題は、戻りエラーにvalueプロパティがないことです。値を取得するために他に何を使用できますか?
@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"))
}