gpt4 book ai didi

scala - 如何在 Play 2 中设置选项值以形成映射?

转载 作者:行者123 更新时间:2023-12-01 08:21:45 25 4
gpt4 key购买 nike

我想将 Option 值映射到表单但不忽略。例如:

case class Message(Id: Option[Int], name: String, description: Option[String])

val messageForm: Form[Message] = Form(
mapping(
"id" -> ignored(Option(0)),
"name" -> nonEmptyText(minLength = 4, maxLength = 140),
"description" -> text
)(Message.apply)(Message.unapply))
^

type mismatch;
found : (Option[Int], String, Option[String]) => Message
required: (Option[Int], String, String) => ?

忽略的“id”值使用成功,但“文本”使用应用函数产生错误。如何正确地做比?我需要为 Option[String] 编写自定义表单约束吗?

最佳答案

您可以使用 optional 方法将 Mapping[String] 转换为 Mapping[Optional[String]]:

val messageForm: Form[Message] = Form(
mapping(
"id" -> ignored[Option[Int]](None),
"name" -> nonEmptyText(minLength = 4, maxLength = 140),
"description" -> optional(text)
)(Message.apply)(Message.unapply))

请注意,您可以使用 None 来表示 id 字段中没有值。

关于scala - 如何在 Play 2 中设置选项值以形成映射?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21153843/

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