我在控制器中有以下代码:
val addForm = Form(
tuple("email" -> nonEmptyText, "password" -> nonEmptyText)
)
def add = Action { implicit request =>
Ok(views.html.registration.add(addForm))
}
def create = Action { implicit request =>
addForm.bindFromRequest.fold(
failure => //....,
success => //....
在create
(?或其他任何有意义的方法)方法我想检查一些其他条件,例如,数据库中是否已存在电子邮件。如果是这样,请向视图返回错误,说“此电子邮件已存在”。
我没有在Play的文档中找到任何关于它的内容,只是关于“nonEmpty”等标准限制。
我在哪里以及如何做到这一点?
答案 0 :(得分:2)
试试这个:
import play.api.data.Mapping
import play.api.data.Forms._
import play.api.data.validation._
val addForm = Form(
tuple("email" -> freeEmail, "password" -> nonEmptyText)
)
def freeEmail: Mapping[String] = {
nonEmptyText verifying Constraint[String]("constraint.email") { o: String =>
if (Email.exists(o) /*your checker here*/) Invalid(ValidationError("Email already exists")) else Valid
}
}