getFormService(); $html = $formHelper->getSpecificFieldHtml($field, $value, $viewDatas); $error = validation_show_error($field); return $html . "{$error}"; } if (! function_exists('render_field_label')) { function render_field_label(string $field, array $viewDatas): string { $classPath = $viewDatas['class_path']; $baseLabel = lang("{$classPath}.label.{$field}"); // 1. ServiceForm에서 동적 처리(예: 도움말 아이콘, 별도 클래스)를 가져옵니다. $service = $viewDatas['service'] ?? null; if ($service === null) { return __FUNCTION__ . "에서 오류발생: ViewDatas에 'service'가 정의되지 않았습니다."; } $formHelper = $service->getFormHelper(); $dynamicHtml = $formHelper->getSpecificLabelAdornment($field); // 2. 공통 로직: 필수 필드 표시 (*) // (ServiceForm이 해당 필드가 필수인지 알려줘야 함) $isRequired = $formHelper->isFieldRequired($field); $requiredStar = $isRequired ? '*' : ''; return "{$baseLabel}{$requiredStar}{$dynamicHtml}"; } } }