Используя Laravel Nova, я хочу показать вычисляемое поле в подпредставлении BelongsToMany.В промежуточной модели я настроил поле виртуального атрибута, которое вычисляет значение, используя связанные таблицы.Однако это поле не отображается, вероятно, потому что Nova проверяет поля withPivot (к которым его нельзя добавить, поскольку это не реальное поле).Есть ли альтернативный метод, чтобы заставить это работать?
Модель базы данных за этим:
[GameVariation] has BelongsToMany using [GameVariationMatch] with [GameMatch]
[GameMatch] HasOne [Match]
В ресурсе GameVariation я настроил поле BelongsToMany, которое должно отображать вычисленное поле:
BelongsToMany::make( 'Game Matches', 'game_matches', GameMatch::class )
->fields( function () {
return [
Text::make( 'Match Data' )->displayUsing(function() {
return $this->match_data;
})
];
} ),
В модели GameVariation таблицы связаны с BelongsToMany:
final public function game_matches(): BelongsToMany {
return $this->belongsToMany(
GameMatch::class
)
->using( GameVariationMatch::class );
}
В модели сводной таблицы GameVariationMatch вычисляемое поле настраивается следующим образом:
final public function getMatchDataAttribute(): string {
return $this
->game_match
->match
->match_data;
}