Как получить сводные данные в laravel lighthouse?

#laravel #graphql #laravel-lighthouse

Вопрос:

Я использую пакет lighthouse для создания своей схемы graphql (https://github.com/nuwave/lighthouse)

Но как получить данные из @belongsToMany отношений, которые хранятся в сводной таблице?

Например Document , сущность, подключенная N-N к сущности. Person И у каждого человека есть некоторые метаданные в сводной таблице.

 foreign_citizens: [Person!] @belongsToMany(relation: "foreignCitizens"),
 

Ответ №1:

Сначала вам нужно получить сводные данные в laravel, используя withPivot в конце отношения, примерно так:

 public function foreignCitizens(): BelongsToMany
{
  return $this->belongsToMany()->withPivot(/* here is a list of your pivot data */);
}
 

Затем вам нужно определить соответствующий type в graphql:

 type ForeignCitizenPivot {
  # Here goes the same list again
}
 

Затем снова добавьте a pivot в свой ForeignCitizen тип в graphql:

 type ForeignCitizen {
  # other attributes
  pivot: ForeignCitizenPivot 
}