8

Play フレームワークと mongoDB を使用して scala アプリケーションを作成しています。Leon Play-Salatを使用して、なんとか接続を確立しました。私はモデルを持っています

case class Person(
  id: ObjectId = new ObjectId,
  fname: String,
  mname: String,
  lname: String
)

私のコントローラーでは、フォームにマップする必要があります

val personForm: Form[Person] = Form(

// Defines a mapping that will handle Contact values
mapping(
  "id" -> of[ObjectId],
  "fname" -> nonEmptyText,
  "mname" -> text,
  "lname" -> nonEmptyText     
)(Person.apply)(Person.unapply))

ObjectID をフォームにマップするにはどうすればよいですか? ObjectId の Object not found というエラーが表示されます。

4

2 に答える 2

3

機能するように管理する

val personForm: Form[Person] = Form(
// Defines a mapping that will handle Contact values
mapping(
  "id" -> ignored(new ObjectId),
  "fname" -> nonEmptyText,
  "mname" -> text,
  "lname" -> nonEmptyText     
)(Person.apply)(Person.unapply))

CRUD機能を実行しようとしているため、IDが必要です。

于 2012-10-16T03:32:09.327 に答える
2

独自のコンストラクターとデコンストラクターを使用する方が良い

val personForm: Form[Person] = Form(
  mapping(
    "fname" -> nonEmptyText,
    "mname" -> text,
    "lname" -> nonEmptyText
  )((fname, mname, lname) => Person(new ObjectId, fname, mname, lname))
  ((person: Person) => Some((person.fname, person.mname, person.lname)))      )
于 2012-10-18T04:24:07.933 に答える