如何在Laravel Lighthouse的突变中实现嵌套的arg解析器?

时间:2020-05-18 18:17:33

标签: php laravel eloquent graphql laravel-lighthouse

我正在使用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指令,但是这两次尝试都没有没办法。

0 个答案:

没有答案