Laravel Lighthouse项目中make:graphql:type指令未找到的原因排查
问题解决:Laravel Lighthouse 中找不到
make:graphql:type 命令 你遇到的问题核心是:
make:graphql:type不是 Nuwave Lighthouse 提供的命令,这个指令属于旧版 Laravel GraphQL 包folklore/graphql,而你当前使用的 Lighthouse 是基于SDL(Schema Definition Language)的GraphQL实现,两者的类型定义逻辑完全不同。Lighthouse 定义 GraphQL 类型的正确方式:
- 使用 SDL 编写类型:在项目根目录的
graphql/文件夹下创建.graphql文件,直接定义类型结构。比如创建graphql/User.graphql:type User { id: ID! name: String! email: String! created_at: DateTime! } - 自定义字段解析逻辑:如果需要为字段编写自定义解析代码,使用 Lighthouse 提供的 resolver 生成命令:
之后在 SDL 文件中通过php artisan lighthouse:resolver UserResolver@field指令将 resolver 关联到对应字段即可。
- 使用 SDL 编写类型:在项目根目录的
依赖检查:你当前安装的
laravel/framework、mll-lab/laravel-graphql-playground、nuwave/lighthouse版本匹配且正确,无需额外安装其他 GraphQL 包。如果之前曾安装过folklore/graphql,建议卸载避免冲突。Lighthouse 可用命令:执行
php artisan list lighthouse可以查看所有 Lighthouse 提供的指令,比如生成 resolver、directive 等,确实没有graphql:type相关命令——因为 Lighthouse 优先使用 SDL 定义类型,而非生成 PHP 类型类,这是它和旧版 GraphQL 包的核心差异。
内容的提问来源于stack exchange,提问作者Petro Gromovo
相关产品推荐
相关产品推荐

