ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
[TOC] #### 执行查询 执行查询是一个复杂的过程涉及多个步骤,包括查询解析(query parsing),验证,以及最后的针对schema的执行。 graphql-php在类GraphQL\GraphQL中为些过程提供了方便的接口. ~~~ use GraphQL\GraphQL; $result = GraphQL::execute( $schema, $queryString, $rootValue = null, $contextValue = null, $variableValues = null, $operationName = null ); ~~~ 方法返回包含 data 和 errors key值的数组(如果执行完全没有错误,则errors字段不存在),这个数组适合进一步的序列化。 #### execute执行参数 | 参数 | 类型 | 描述 | | --- | --- | --- | | schema | `GraphQL\Schema` | `必填` 你应用的schema的实例。 | | queryString | `string` or `GraphQL\Language\AST\DocumentNode` | 查询字符串 或 文档节点 ,查询字符串最后也会转换成文档节点。graphql query string 会被解析,验证和执行。如果在执行之前已经在其它地方解析过,在这里传递对应的 ast document对象 以避免新的解析。 | | rootValue | `mixed` | 传递给schema 中 root-level Object type 的数据,它作为 类型的 field resolvers的第一个参数传入,如果实际的根值由 Query 类型本身提取(如字段的参数)可以被忽略或设置为null | | contextValue | `mixed` | 保存所有的 field resolvers 之间 共享的信息,可以是任意值,大多数情况下它传递当前登录者信息,及位置描述等。 在所有 field resolvers中作为回调函数的第三个参数变量 | | variableValues | `array` | 伴随 query string 传递的变量数组,key值对应 query string中的变量声明。 | | operationName | `string` | 在query string 包含多个顶级操作的情况下,允许调用者指定在query string中将运行哪一个 |