id = $id; $preset = AdminPreset::query()->findOrFail($id); $this->key = $preset->key; $this->area = $preset->area; $this->type = $preset->type; $this->label = $preset->label; $this->value = $preset->value ?? ''; $this->payload = $preset->payload ? json_encode($preset->payload, JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE) : ''; $this->isActive = $preset->is_active; } public function save(): void { $validated = $this->validate([ 'key' => ['required', 'string', 'max:255', 'regex:/^[a-z0-9_.-]+$/', Rule::unique('admin_presets', 'key')->ignore($this->id)], 'area' => ['required', 'string', 'max:100'], 'type' => ['required', Rule::in(['text', 'number', 'boolean', 'json'])], 'label' => ['required', 'string', 'max:255'], 'value' => ['nullable', 'string'], 'payload' => ['nullable', 'json'], 'isActive' => ['boolean'], ]); AdminPreset::query() ->findOrFail($this->id) ->update([ 'key' => $validated['key'], 'area' => $validated['area'], 'type' => $validated['type'], 'label' => $validated['label'], 'value' => $validated['value'] ?: null, 'payload' => filled($validated['payload']) ? json_decode($validated['payload'], true) : null, 'is_active' => $validated['isActive'], ]); session()->flash('success', __('Voreinstellung wurde gespeichert.')); $this->redirect(route('admin.presets.index'), navigate: true); } }; ?>