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