0

私はplayframeworkが初めてです。ユーザーのモデルと、静的メソッドに付随するオブジェクトがあります...

case class User(id: Int, username: String, password: String, fullname: String, /
     lastLogin : Date, updatedOn: Date, updatedBy: Int, createdOn: Date, createdBy: Int)

詳細の一部を省略して、このクラスのフォームを作成したいと思います。現在、私は UserForm ケースクラスを持っています

case class UserForm(fullName:String, username: String, password:String, confirm:String)

私が使用できるようにするには:

val userForm = Form(
    mapping(
        "fullName" -> of[String],
        "username" -> of[String],
        "password" -> of[String],
        "confirm" -> of[String]
    )(UserForm.apply)(UserForm.unapply)
)

みたいな感じですHacker-ish。これを行う慣用的でより良心的な方法はありますか?

4

2 に答える 2

3

これに来るのが遅くなりましたが、これを支援するユーティリティをリリースしました! クラスを使用すると、コードは次のようになります。

case class User(id: Int, username: String, password: String, fullname: String, lastLogin : Date, updatedOn: Date, updatedBy: Int, createdOn: Date, createdBy: Int)
object User { implicit val mapping = CaseClassMapping.mapping[User] }

val userForm = Form(implicitly[Mapping[User]])

ソースとそれをプロジェクトに含めるための手順は、github で見つけることができます: https://github.com/Iterable/iterable-play-utils

于 2016-10-11T19:37:55.557 に答える
3

どうですか

val userForm = Form(
  mapping(
      "fullName" -> text,
      "username" -> text,
      "password" -> text,
      "confirm" -> text
  )(UserForm.apply)(UserForm.unapply)
)

さらに多くの組み込みのチェックと検証があります。基本はここにリストされています: http://www.playframework.com/documentation/2.1.0/ScalaForms

オブジェクトでそれらが必要ない場合は、タプルを使用できます

val userForm = Form(
  tuple(
      "fullName" -> text,
      "username" -> text,
      "password" -> text,
      "confirm" -> text
  )
)

あなたの場合のタプルは、次のタイプを持っています: 次の(String, String, String, String)ように使用できます:val (fullName, username, password, confirm) = refToTuple

于 2013-02-28T18:42:30.833 に答える