gpt4 book ai didi

forms - Play2.1 中 inputRadioGroup 的 Scala 示例

转载 作者:行者123 更新时间:2023-12-04 05:08:47 24 4
gpt4 key购买 nike

我正在浏览文档,但找不到如何在 Controller 中使用 inputRadioGroup 的示例。

我想我应该使用 this helper 。但是如何将它绑定(bind)到我的 Controller 中的表单?
我想展示一个代表 1-5 年级的广播组

Controller :

object Sms extends Controller {  

val testForm: Form[Test] = Form (
mapping(
"firstname" -> nonEmptyText,
"lastname" -> nonEmptyText,
"password" -> tuple(
"main" -> text(minLength = 6),
"confirm" -> text
).verifying(
"Passwords don't match", passwords => passwords._1 == passwords._2
),
"email" -> tuple(
"main" -> (text verifying pattern("^([0-9a-zA-Z]([-\\.\\w]*[0-9a-zA-Z])*@([0-9a-zA-Z][-\\w]*[0-9a-zA-Z]\\.)+[a-zA-Z]{2,9})$".r, error="A valid email is req")),
"confirm" -> text
).verifying(
"Emails don't match", emails => emails._1 == emails._2
),
"grade" -> Do the magic happen here?
)(Test.apply)(Test.unapply)
)



case class Test(
firstname: String,
lastname: String,
password: String,
email: String,
grade: Int
)

}

查看:
@inputRadioGroup(
testForm("grade"),
options = Seq("1"->1,"2"->2....and so on)
'_label -> "Grade",
'_error -> testForm("grade").error.map(_.withMessage("some error")))

我不知道该怎么做。

最佳答案

在您的 Controller 中,您创建一个可能成绩的序列并将序列传递给您的 View 。我喜欢使用案例类 Grade最好将 Tuple2[String, String] 传递给 View 。但我想这是一个见仁见智的问题。

case class Grade(value: Int, name: String)
private val grades = Seq(Grade(1, "Brilliant"), Grade(2, "Good"), Grade(3, "Ok"))

val testForm: Form[Test] = Form (...
"grade"-> number
)(Test.apply)(Test.unapply)

def edit(id: Long) = Action {
val model = ...obtain model
Ok(views.html.edit(testForm.fill(model), grades))
}

def submit() = Action {
testForm.bindFromRequest.fold(
formWithErrors => Ok(views.html.edit(formWithErrors, grades))
}, test => {
Logger.info("grade: " + grades.find(_.value == test.grade).map(_.name))
//save model...
Redirect(...
})
}

在您看来,您将等级 Seq 映射到 Tuple2[String, String] 以提供 inputRadioGroup
@(testForm: Form[Test], grades: Seq[Grade])

@inputRadioGroup(contactForm("grade"),
options = grades.map(g => g.value.toString -> g.name),
'_label -> "Grade")

关于forms - Play2.1 中 inputRadioGroup 的 Scala 示例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15161402/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com