From 724909a1e88287b9244e4fb886f1e0a3e41a8a68 Mon Sep 17 00:00:00 2001 From: Dan Harrin Date: Sun, 22 Jun 2025 12:45:59 +0100 Subject: [PATCH 1/2] fix: Pivot model casts during edit --- packages/tables/src/Actions/EditAction.php | 24 +++++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) diff --git a/packages/tables/src/Actions/EditAction.php b/packages/tables/src/Actions/EditAction.php index 97e094e664..4979984690 100644 --- a/packages/tables/src/Actions/EditAction.php +++ b/packages/tables/src/Actions/EditAction.php @@ -36,12 +36,34 @@ class EditAction extends Action $this->icon(FilamentIcon::resolve('actions::edit-action') ?? 'heroicon-m-pencil-square'); $this->fillForm(function (Model $record, Table $table): array { - if ($translatableContentDriver = $table->makeTranslatableContentDriver()) { + $translatableContentDriver = $table->makeTranslatableContentDriver(); + + if ($translatableContentDriver) { $data = $translatableContentDriver->getRecordAttributesToArray($record); } else { $data = $record->attributesToArray(); } + $relationship = $table->getRelationship(); + + if ($relationship instanceof BelongsToMany) { + $pivot = $record->getRelationValue($relationship->getPivotAccessor()); + + $pivotColumns = $relationship->getPivotColumns(); + + if ($translatableContentDriver) { + $data = [ + ...$data, + ...Arr::only($translatableContentDriver->getRecordAttributesToArray($pivot), $pivotColumns), + ]; + } else { + $data = [ + ...$data, + ...Arr::only($pivot->attributesToArray(), $pivotColumns), + ]; + } + } + if ($this->mutateRecordDataUsing) { $data = $this->evaluate($this->mutateRecordDataUsing, ['data' => $data]); } From a90b7667328166e450d0ce89c55cf79e796c4880 Mon Sep 17 00:00:00 2001 From: Dan Harrin Date: Sun, 22 Jun 2025 12:47:01 +0100 Subject: [PATCH 2/2] Update EditAction.php --- packages/tables/src/Actions/EditAction.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/tables/src/Actions/EditAction.php b/packages/tables/src/Actions/EditAction.php index 4979984690..90f310e6ba 100644 --- a/packages/tables/src/Actions/EditAction.php +++ b/packages/tables/src/Actions/EditAction.php @@ -48,7 +48,7 @@ class EditAction extends Action if ($relationship instanceof BelongsToMany) { $pivot = $record->getRelationValue($relationship->getPivotAccessor()); - + $pivotColumns = $relationship->getPivotColumns(); if ($translatableContentDriver) {