我正在使用Eloquent和Lighthouse实现PHP的GraphQL服务器。 我在理解如何实现嵌套的arg解析器时遇到了麻烦。
这是到目前为止我的模式的一个示例:
Samsung S7 phone=970 millibars
Weather station=1010 millibars (at the same time)
type Foo {
id: ID!
title: String
public: Boolean
}
input FooInput {
title: String
public: Boolean
}
type Mutation {
insertFoo(foo: FooInput! @spread): Foo! @create
}
突变有效,并且在数据库中插入了新的Foo。
但是,我想在FooInput上添加一个更复杂的字段。
insertFoo
我不会在这里详细介绍逻辑,但是我需要对Bar和Baz进行一些处理,而Eloquent本身无法解决这些问题。
我认为解决方案是以某种方式实现arg resolver,但是文档中并未明确显示如何做到这一点。
对我来说,重要的是不要失去对FooInput其余字段的自动处理的功能:它们开箱即用,并且我希望避免重写琐碎的样板,因为Lighthouse目前正在为我正确处理。因此,基本上,我想避免手动编写整个input FooInput {
title: String
public: Boolean
complexField: [ComplexFieldInput]
}
input ComplexFieldInput {
bar: BarInput
baz: BazInput
}
input BarInput {
name: String
type: String
}
input BazInput {
name: String
type: String
}
突变的完整解析器。
我不了解的是,在Eloquent已插入:main“实体之后,如何实现一个自定义解析器类,该类仅处理与insertFoo
相关的逻辑。
到目前为止,我一直尝试在\ App \ GraphQL \ Mutations中创建ComplexField类,但是它没有用,并且在ComplexFieldInput
上放置了field指令,但是这两次尝试都没有没办法。