Skip to content

Commit

Permalink
Fix AutoRelationManager for BelongsToMany
Browse files Browse the repository at this point in the history
  • Loading branch information
miguilimzero committed Sep 22, 2023
1 parent 5009e8b commit b13ec30
Showing 1 changed file with 14 additions and 3 deletions.
17 changes: 14 additions & 3 deletions src/AutoRelationManager.php
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,7 @@ public function infolist(Infolist $infolist): Infolist
return $infolist
->schema(InfolistGenerator::make(
modelClass: $this->getRelationship()->getModel()::class,
exceptColumns: [$this->getRelationship()->getForeignKeyName()],
exceptColumns: $this->getExceptRelationshipColumns(),
overwriteColumns: $this->getColumnsOverwriteMapped('infolist'),
enumDictionary: static::$enumDictionary,
))
Expand All @@ -72,7 +72,7 @@ public function form(Form $form): Form
return $form
->schema(FormGenerator::make(
modelClass: $this->getRelationship()->getModel()::class,
exceptColumns: [$this->getRelationship()->getForeignKeyName()],
exceptColumns: $this->getExceptRelationshipColumns(),
overwriteColumns: $this->getColumnsOverwriteMapped('form'),
enumDictionary: static::$enumDictionary,
relationManagerView: true,
Expand Down Expand Up @@ -124,7 +124,7 @@ public function table(Table $table): Table
)
->columns(TableGenerator::make(
modelClass: $this->getRelationship()->getModel()::class,
exceptColumns: [$this->getRelationship()->getForeignKeyName()],
exceptColumns: $this->getExceptRelationshipColumns(),
overwriteColumns: $this->getColumnsOverwriteMapped('table'),
enumDictionary: static::$enumDictionary,
visibleColumns: static::$visibleColumns,
Expand Down Expand Up @@ -157,6 +157,17 @@ public function getTableActions(): array
->all();
}

protected function getExceptRelationshipColumns()
{
$relationship = $this->getRelationship();

if ($relationship instanceof BelongsToMany) {
return [];
}

return [$relationship->getForeignKeyName()];
}

protected function getColumnsOverwriteMapped(string $type): array
{
return collect($this->getColumnsOverwrite()[$type])
Expand Down

0 comments on commit b13ec30

Please sign in to comment.