From 05477c711fe7041ad71273179dc1a2a64bafbfb3 Mon Sep 17 00:00:00 2001 From: Boy132 Date: Thu, 22 Aug 2024 22:19:38 +0200 Subject: [PATCH] Create missing server variables on EditServer page (#560) * create missing server variables on editserver page * remove count check --- .../ServerResource/Pages/EditServer.php | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/app/Filament/Resources/ServerResource/Pages/EditServer.php b/app/Filament/Resources/ServerResource/Pages/EditServer.php index 74cfe7018..31e682ab5 100644 --- a/app/Filament/Resources/ServerResource/Pages/EditServer.php +++ b/app/Filament/Resources/ServerResource/Pages/EditServer.php @@ -29,6 +29,7 @@ use Filament\Notifications\Notification; use Filament\Resources\Pages\EditRecord; use Illuminate\Support\Facades\Validator; use Closure; +use Illuminate\Database\Eloquent\Builder; use Webbingbrasil\FilamentCopyActions\Forms\Actions\CopyAction; class EditServer extends EditRecord @@ -473,7 +474,21 @@ class EditServer extends EditRecord ->columnSpan(6), Forms\Components\Repeater::make('server_variables') - ->relationship('serverVariables') + ->relationship('serverVariables', function (Builder $query) { + /** @var Server $server */ + $server = $this->getRecord(); + + foreach ($server->variables as $variable) { + ServerVariable::query()->firstOrCreate([ + 'server_id' => $server->id, + 'variable_id' => $variable->id, + ], [ + 'variable_value' => $variable->server_value ?? '', + ]); + } + + return $query; + }) ->grid() ->mutateRelationshipDataBeforeSaveUsing(function (array &$data): array { foreach ($data as $key => $value) {