Вложенные мутации не работают в Lighthouse 3.7 - PullRequest
1 голос
/ 12 июля 2019

Я пытаюсь настроить схему в Lighthouse 3.7 / Laravel 5.8 Чего я хочу достичь, так это: Пользователь должен иметь возможность создавать списки. Между пользователем и Clist существует связь «один ко многим». И я пытаюсь реализовать вложенные мутации, как описано здесь .

Я уже реализовал часть запроса, и она отлично работает. Но когда я тестирую мутацию createClist в GraphQL Playground, я получаю эту ошибку:

"debugMessage": "Array to string conversion",

"message": "Internal server error",

"extensions": {
        "category": "internal"
      },
...

И я не могу понять, что я делаю неправильно.

Вот мой код:

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!
}


А вот скриншот GraphQL Playground:

enter image description here

1 Ответ

0 голосов
/ 12 июля 2019

При использовании директивы @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);        
    }
}

Маяк использует подсказку типа, чтобы определить, как он должен обрабатывать отношения.

...