laravel-lighthouse - Laravel Lighthouse 模式验证问题未定义标量混合
问题描述
我正在尝试验证模式,但遇到了一个非常陌生的错误。当我尝试运行 PHP artisan lighthouse:validate-schema 命令时会发生这种情况。
在此之前,我完全没有遇到过这个问题。事实上,我昨天刚刚安装了这个包,然后它就可以工作了。请注意,这不是基本的灯塔包,我确实定义了架构
{
"message": "No matching subclass of GraphQL\\Type\\Definition\\ScalarType of found for the scalar Mixed",
"exception": "Nuwave\\Lighthouse\\Exceptions\\DefinitionException",
"file": "/home/richard/Projects/snaptuity-api/vendor/nuwave/lighthouse/src/Schema/TypeRegistry.php",
"line": 263,
"trace": [
{
"file": "/home/richard/Projects/snaptuity-api/vendor/nuwave/lighthouse/src/Schema/TypeRegistry.php",
"line": 194,
"function": "resolveScalarType",
"class": "Nuwave\\Lighthouse\\Schema\\TypeRegistry",
"type": "->"
},
{
"file": "/home/richard/Projects/snaptuity-api/vendor/nuwave/lighthouse/src/Schema/TypeRegistry.php",
"line": 176,
"function": "resolveType",
"class": "Nuwave\\Lighthouse\\Schema\\TypeRegistry",
"type": "->"
},
{
"file": "/home/richard/Projects/snaptuity-api/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
"line": 130,
"function": "Nuwave\\Lighthouse\\Schema\\{closure}",
"class": "Nuwave\\Lighthouse\\Schema\\TypeRegistry",
"type": "->"
},
{
"file": "/home/richard/Projects/snaptuity-api/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
"line": 105,
"function": "Illuminate\\Pipeline\\{closure}",
"class": "Illuminate\\Pipeline\\Pipeline",
"type": "->"
},
{
"file": "/home/richard/Projects/snaptuity-api/vendor/nuwave/lighthouse/src/Schema/TypeRegistry.php",
"line": 177,
"function": "then",
"class": "Illuminate\\Pipeline\\Pipeline",
"type": "->"
},
{
"file": "/home/richard/Projects/snaptuity-api/vendor/nuwave/lighthouse/src/Schema/TypeRegistry.php",
"line": 147,
"function": "handle",
"class": "Nuwave\\Lighthouse\\Schema\\TypeRegistry",
"type": "->"
},
{
"file": "/home/richard/Projects/snaptuity-api/vendor/webonyx/graphql-php/src/Type/Schema.php",
"line": 164,
"function": "possibleTypes",
"class": "Nuwave\\Lighthouse\\Schema\\TypeRegistry",
"type": "->"
},
{
"file": "/home/richard/Projects/snaptuity-api/vendor/webonyx/graphql-php/src/Type/Schema.php",
"line": 133,
"function": "resolveAdditionalTypes",
"class": "GraphQL\\Type\\Schema",
"type": "->"
},
{
"file": "/home/richard/Projects/snaptuity-api/vendor/nuwave/lighthouse/src/Schema/SchemaBuilder.php",
"line": 91,
"function": "__construct",
"class": "GraphQL\\Type\\Schema",
"type": "->"
},
{
"file": "/home/richard/Projects/snaptuity-api/vendor/nuwave/lighthouse/src/GraphQL.php",
"line": 224,
"function": "build",
"class": "Nuwave\\Lighthouse\\Schema\\SchemaBuilder",
"type": "->"
},
{
"file": "/home/richard/Projects/snaptuity-api/vendor/nuwave/lighthouse/src/GraphQL.php",
"line": 157,
"function": "prepSchema",
"class": "Nuwave\\Lighthouse\\GraphQL",
"type": "->"
},
{
"file": "/home/richard/Projects/snaptuity-api/vendor/nuwave/lighthouse/src/GraphQL.php",
"line": 110,
"function": "executeQuery",
"class": "Nuwave\\Lighthouse\\GraphQL",
"type": "->"
},
{
"file": "/home/richard/Projects/snaptuity-api/vendor/nuwave/lighthouse/src/Support/Http/Controllers/GraphQLController.php",
"line": 70,
"function": "executeRequest",
"class": "Nuwave\\Lighthouse\\GraphQL",
"type": "->"
},
{
"function": "query",
"class": "Nuwave\\Lighthouse\\Support\\Http\\Controllers\\GraphQLController",
"type": "->"
},
{
"file": "/home/richard/Projects/snaptuity-api/vendor/laravel/framework/src/Illuminate/Routing/Controller.php",
"line": 54,
"function": "call_user_func_array"
},
{
"file": "/home/richard/Projects/snaptuity-api/vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php",
"line": 45,
"function": "callAction",
"class": "Illuminate\\Routing\\Controller",
"type": "->"
},
{
"file": "/home/richard/Projects/snaptuity-api/vendor/laravel/framework/src/Illuminate/Routing/Route.php",
"line": 219,
"function": "dispatch",
"class": "Illuminate\\Routing\\ControllerDispatcher",
"type": "->"
},
{
"file": "/home/richard/Projects/snaptuity-api/vendor/laravel/framework/src/Illuminate/Routing/Route.php",
"line": 176,
"function": "runController",
"class": "Illuminate\\Routing\\Route",
"type": "->"
},
{
"file": "/home/richard/Projects/snaptuity-api/vendor/laravel/framework/src/Illuminate/Routing/Router.php",
"line": 681,
"function": "run",
"class": "Illuminate\\Routing\\Route",
"type": "->"
},
{
"file": "/home/richard/Projects/snaptuity-api/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
"line": 130,
"function": "Illuminate\\Routing\\{closure}",
"class": "Illuminate\\Routing\\Router",
"type": "->"
},
{
"file": "/home/richard/Projects/snaptuity-api/vendor/nuwave/lighthouse/src/Support/Http/Middleware/AcceptJson.php",
"line": 30,
"function": "Illuminate\\Pipeline\\{closure}",
"class": "Illuminate\\Pipeline\\Pipeline",
"type": "->"
},
{
"file": "/home/richard/Projects/snaptuity-api/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
"line": 171,
"function": "handle",
"class": "Nuwave\\Lighthouse\\Support\\Http\\Middleware\\AcceptJson",
"type": "->"
},
{
"file": "/home/richard/Projects/snaptuity-api/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
"line": 105,
"function": "Illuminate\\Pipeline\\{closure}",
"class": "Illuminate\\Pipeline\\Pipeline",
"type": "->"
},
{
"file": "/home/richard/Projects/snaptuity-api/vendor/laravel/framework/src/Illuminate/Routing/Router.php",
"line": 683,
"function": "then",
"class": "Illuminate\\Pipeline\\Pipeline",
"type": "->"
},
{
"file": "/home/richard/Projects/snaptuity-api/vendor/laravel/framework/src/Illuminate/Routing/Router.php",
"line": 658,
"function": "runRouteWithinStack",
"class": "Illuminate\\Routing\\Router",
"type": "->"
},
{
"file": "/home/richard/Projects/snaptuity-api/vendor/laravel/framework/src/Illuminate/Routing/Router.php",
"line": 624,
"function": "runRoute",
"class": "Illuminate\\Routing\\Router",
"type": "->"
},
{
"file": "/home/richard/Projects/snaptuity-api/vendor/laravel/framework/src/Illuminate/Routing/Router.php",
"line": 613,
"function": "dispatchToRoute",
"class": "Illuminate\\Routing\\Router",
"type": "->"
},
{
"file": "/home/richard/Projects/snaptuity-api/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php",
"line": 170,
"function": "dispatch",
"class": "Illuminate\\Routing\\Router",
"type": "->"
},
{
"file": "/home/richard/Projects/snaptuity-api/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
"line": 130,
"function": "Illuminate\\Foundation\\Http\\{closure}",
"class": "Illuminate\\Foundation\\Http\\Kernel",
"type": "->"
},
{
"file": "/home/richard/Projects/snaptuity-api/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php",
"line": 21,
"function": "Illuminate\\Pipeline\\{closure}",
"class": "Illuminate\\Pipeline\\Pipeline",
"type": "->"
},
{
"file": "/home/richard/Projects/snaptuity-api/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
"line": 171,
"function": "handle",
"class": "Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest",
"type": "->"
},
{
"file": "/home/richard/Projects/snaptuity-api/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php",
"line": 21,
"function": "Illuminate\\Pipeline\\{closure}",
"class": "Illuminate\\Pipeline\\Pipeline",
"type": "->"
},
{
"file": "/home/richard/Projects/snaptuity-api/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
"line": 171,
"function": "handle",
"class": "Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest",
"type": "->"
},
{
"file": "/home/richard/Projects/snaptuity-api/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/ValidatePostSize.php",
"line": 27,
"function": "Illuminate\\Pipeline\\{closure}",
"class": "Illuminate\\Pipeline\\Pipeline",
"type": "->"
},
{
"file": "/home/richard/Projects/snaptuity-api/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
"line": 171,
"function": "handle",
"class": "Illuminate\\Foundation\\Http\\Middleware\\ValidatePostSize",
"type": "->"
},
{
"file": "/home/richard/Projects/snaptuity-api/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/CheckForMaintenanceMode.php",
"line": 63,
"function": "Illuminate\\Pipeline\\{closure}",
"class": "Illuminate\\Pipeline\\Pipeline",
"type": "->"
},
{
"file": "/home/richard/Projects/snaptuity-api/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
"line": 171,
"function": "handle",
"class": "Illuminate\\Foundation\\Http\\Middleware\\CheckForMaintenanceMode",
"type": "->"
},
{
"file": "/home/richard/Projects/snaptuity-api/vendor/fideloper/proxy/src/TrustProxies.php",
"line": 57,
"function": "Illuminate\\Pipeline\\{closure}",
"class": "Illuminate\\Pipeline\\Pipeline",
"type": "->"
},
{
"file": "/home/richard/Projects/snaptuity-api/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
"line": 171,
"function": "handle",
"class": "Fideloper\\Proxy\\TrustProxies",
"type": "->"
},
{
"file": "/home/richard/Projects/snaptuity-api/vendor/spatie/laravel-cors/src/Cors.php",
"line": 41,
"function": "Illuminate\\Pipeline\\{closure}",
"class": "Illuminate\\Pipeline\\Pipeline",
"type": "->"
},
{
"file": "/home/richard/Projects/snaptuity-api/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
"line": 171,
"function": "handle",
"class": "Spatie\\Cors\\Cors",
"type": "->"
},
{
"file": "/home/richard/Projects/snaptuity-api/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
"line": 105,
"function": "Illuminate\\Pipeline\\{closure}",
"class": "Illuminate\\Pipeline\\Pipeline",
"type": "->"
},
{
"file": "/home/richard/Projects/snaptuity-api/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php",
"line": 145,
"function": "then",
"class": "Illuminate\\Pipeline\\Pipeline",
"type": "->"
},
{
"file": "/home/richard/Projects/snaptuity-api/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php",
"line": 110,
"function": "sendRequestThroughRouter",
"class": "Illuminate\\Foundation\\Http\\Kernel",
"type": "->"
},
{
"file": "/home/richard/Projects/snaptuity-api/public/index.php",
"line": 55,
"function": "handle",
"class": "Illuminate\\Foundation\\Http\\Kernel",
"type": "->"
},
{
"file": "/home/richard/.config/composer/vendor/cpriego/valet-linux/server.php",
"line": 232,
"function": "require"
}
]
}
这是完整的堆栈跟踪。
但是它说No matching subclass of GraphQL\\Type\\Definition\\ScalarType of finding for the scalar Mixed
,我已经验证我从未声明任何标量类型“混合”
解决方案
经过大量挖掘,我发现我安装软件包的方式都是错误的。
mll-lab/graphql-php-scalars
我们安装的某个软件包需要它。但是由于某种原因,它根本没有被下载到供应商文件夹中,可能是因为 composer.lock 文件搞砸了。
推荐阅读
- spring - 有没有办法在 TestExecutionListener 中获取对 Spring 应用程序上下文的引用?
- ruby-on-rails - 发出返回 xml 响应并解析 XML 字段的 http POST 请求
- javascript - 历史推送后 useState 重置
- serialization - Gremlin.Net 中的 GraphJSON 序列化
- python - Docker python客户端不从自定义上下文构建图像
- c# - 在 JSON 中,如何使用 C# 将相同的键值对递归添加到现有键之一
- forms - 在 Coldfusion 中,如何将多个具有相同名称的复选框值插入到数据库中?
- sql - Maximo 中的 ASSET 表是否有主键?
- ios - 将 ObjectiveC 中具有外部依赖项的项目绑定到 Xamarin iOS
- json - 如何将 API 列表和授权密钥存储在 appsetting 文件中