$data * * @return FieldEntity * * @throws ValidationException */ public static function create(array $data): FieldEntity { $settings = isset($data['settings']) ? json_decode($data['settings'], true) : []; if (!empty($settings)) { $data['hideLabel'] = $settings['hideLabel'] ?? false; $data['readOnly'] = $settings['readOnly'] ?? false; $data['description'] = $settings['description'] ?? ''; $data['requiredMessage'] = $settings['requiredMessage'] ?? ''; $data['cssClasses'] = $settings['cssClasses'] ?? ''; } $fieldObject = new Field( $data['id'] ?? 0, $data['formId'] ?? 0, $data['fieldIndex'] ?? 0, $data['type'] ?? '', $data['label'] ?? '', $data['defaultValue'] ?? '', $data['required'] ?? false, $data['placeholder'] ?? '', $data['position'] ?? 0, $data['hideLabel'] ?? false, $data['readOnly'] ?? false, $data['description'] ?? '', $data['requiredMessage'] ?? '', $data['cssClasses'] ?? '' ); $field = new FieldEntity($fieldObject); if (isset($data['id'])) { $field->setId($data['id']); } if (isset($data['formId'])) { $field->setFormId($data['formId']); } if (isset($data['fieldIndex'])) { $field->setIndex($data['fieldIndex']); } if (isset($data['type'])) { $field->setType($data['type']); } if (isset($data['label'])) { $field->setLabel($data['label']); } if (isset($data['defaultValue'])) { $field->setDefaultValue($data['defaultValue']); } if (isset($data['required'])) { $field->setRequired($data['required']); } if (isset($data['placeholder'])) { $field->setPlaceholder($data['placeholder']); } if (isset($data['position'])) { $field->setPosition($data['position']); } // Set hideLabel if provided directly if (isset($data['hideLabel'])) { $field->setHideLabel($data['hideLabel']); } // Set readOnly if provided directly if (isset($data['readOnly'])) { $field->setReadOnly($data['readOnly']); } // Set description if provided directly if (isset($data['description'])) { $field->setDescription($data['description']); } // Set requiredMessage if provided directly if (isset($data['requiredMessage'])) { $field->setRequiredMessage($data['requiredMessage']); } // Set cssClasses if provided directly if (isset($data['cssClasses'])) { $field->setCssClasses($data['cssClasses']); } return $field; } }