useAutoIncrement; } final public function getAllowedFields(): array { return $this->allowedFields; } protected function emptyStringToNull(array $data): array { if (!isset($data['data']) || !is_array($data['data'])) { return $data; } // 공통 모델에서는 아무 필드도 강제하지 않음 (안전) if (empty($this->nullableFields)) { return $data; } foreach ($this->nullableFields as $field) { if (array_key_exists($field, $data['data'])) { $v = $data['data'][$field]; // 문자열이면 trim 후, 빈문자면 null if (is_string($v)) { $v = trim($v); $data['data'][$field] = ($v === '') ? null : $v; } else { // 문자열이 아닌데도 '' 같은 케이스 방어 (거의 없음) if ($v === '') $data['data'][$field] = null; } } } return $data; } }