嵌套突变似乎在 Lighthouse 3.7 中不起作用

Ger*_*mit 1 laravel graphql laravel-lighthouse

我正在尝试在 Lighthouse 3.7/Laravel 5.8 中设置模式我想要实现的是:用户应该能够创建 Clists。User 和 Clist 之间存在一对多关系。我正在尝试实现此处描述的嵌套突变。

我已经实现了“查询”部分并且工作正常。但是当我在 GraphQL Playground 中测试 createClist 突变时,出现以下错误:

"debugMessage": "Array to string conversion",

"message": "Internal server error",

"extensions": {
        "category": "internal"
      },
...
Run Code Online (Sandbox Code Playgroud)

我不明白我做错了什么。

这是我的代码:

type Mutation {
  createClist(input: CreateClistInput! @spread): Clist @create
}

input CreateClistInput {
    name: String!
    description: String
    starred: Boolean
    user: CreateUserRelation!
    ctags: CreateCtagRelation
}

input CreateUserRelation {
  connect: ID!
}

input CreateCtagRelation {
  create: [CreateCtagInput!]
  connect: [ID!]
  sync: [ID!]
}

input CreateCtagInput {
  name: String!
}


Run Code Online (Sandbox Code Playgroud)

这是 GraphQL Playground 的屏幕截图:

在此输入图像描述

Oli*_*roe 6

使用该@spread指令时,需要对模型中的关系进行类型提示。

文档中获取以下示例:

use Illuminate\Database\Eloquent\Relations\BelongsTo;

class Post extends Model 
{
    // WORKS
    public function user(): BelongsTo
    {
        return $this->belongsTo(User::class);
    }

    // DOES NOT WORK
    public function comments()
    {
        return $this->hasMany(Comment::class);        
    }
}
Run Code Online (Sandbox Code Playgroud)

Lighthouse 使用类型提示来确定应如何处理关系。