表单 – 如何处理Play中的长格式和不同格式!斯卡拉形式?

在我的模型中,所有关联的帐户都是Long而不是正常的整数.但是,在新Play中处理 Scala表单时! 2.0我只能在表单中验证Int号而不是Long.

http://www.playframework.org/documentation/2.0/ScalaForms

采取以下形式:

val clientForm: Form[Client] = Form(
    mapping(
      "id" -> number,"name" -> text(minLength = 4),"email" -> optional(text),"phone" -> optional(text),"address" -> text(minLength = 4),"city" -> text(minLength = 2),"province" -> text(minLength = 2),"account_id" -> number
    )
    (Client.apply)(Client.unapply)
  )

你在哪里看到account_id我想申请一个Long,那么我怎样才能以最简单的方式投射呢? Client.apply语法因其简单性而非常棒,但我对像map这样的选项持开放态度.谢谢!

解决方法

找到了一个非常棒的方法来执行此操作看起来像我在问题中链接的文档中缺少.

首先,拉进Play!格式:
import play.api.data.format.Formats._

然后在定义Form映射时使用[]语法

然后新的表单val将如下所示:

val clientForm = Form(
    mapping(
      "id" -> of[Long],"account_id" -> of[Long]
    )(Client.apply)(Client.unapply)
  )

更新:使用optional()

经过进一步的实验,我发现你可以将[]和Play混合使用!可选,以满足您的类中定义的可选变量.

所以假设上面的account_id是可选的……

"account_id" -> optional(of[Long])

相关文章

vue阻止冒泡事件 阻止点击事件的执行 <div @click=&a...
尝试过使用网友说的API接口获取 找到的都是失效了 暂时就使用...
后台我拿的数据是这样的格式: [ {id:1 , parentId: 0, name:...
JAVA下载文件防重复点击,防止多次下载请求,Cookie方式快速简...
Mip是什么意思以及作用有哪些