/** * Actualiza los campos del formulario * @param $fieldsConfig */ public function updateFormFields($fieldsConfig) { $savedFieldsIds = []; foreach ($fieldsConfig as $fieldConfig) { if (array_get($fieldConfig, 'id', null)) { $field = FormField::find(array_get($fieldConfig, 'id', null)); } else { $field = new FormField(); } $field->form_id = $this->id; $field->name = array_get($fieldConfig, 'name', ''); $field->alias = array_get($fieldConfig, 'alias', ''); $field->type = array_get($fieldConfig, 'type.type', ''); $field->config = array_get($fieldConfig, 'config', null); $field->save(); $savedFieldsIds[] = $field->id; } $this->fields()->whereNotIn('id', $savedFieldsIds)->delete(); }