1

オプションフィールドを持つ次のケースクラスがあります。

case class BusinessUserRow(id: String, firstName: Option[String], lastName: Option[String], email: Option[String])

ビジネス ユーザー オブジェクトの inputType オブジェクトを作成しようとしています。

val BusinessUserInputType =
    deriveInputObjectType[BusinessUserRow](
      InputObjectTypeName("input"),
      InputObjectTypeDescription("A Business user")
    )

この BusinessInputObject を引数として addBusinessUser ミューテーションに渡したい

  val businessUserInputArg = Argument("input", BusinessUserInputType)

val Mutation = ObjectType("Mutation", fields[RepoContext, Unit](
    Field("addBusinessUser", BusinessUserType,
      arguments = businessUserInputArg :: Nil,
      resolve = c ⇒ c.ctx.BusinessUserRepo.create(c.arg(businessUserInputArg)))))

しかし、次のコンパイル エラーが発生します。

Type dao.Tables.BusinessUserRow @@ sangria.marshalling.FromInput.InputObjectResult cannot be used as an input. Please consider defining an implicit instance of `FromInput` for it.
[error]   val businessUserInputArg = Argument("input", BusinessUserInputType)

ただし、BusinessRow のすべてのフィールドはスカラー値です。何が問題の原因なのかわかりません。表示されていないものはありますか?

4

2 に答える 2

0

ありがとう!この行を追加するだけで問題が解決しました:

implicit val businessUserFormat = Json.format[BusinessUserRow]
于 2017-08-20T20:57:29.730 に答える