field가 array 입니다.\n" . var_export($field, true)); } switch ($field) { case "clientinfo_uid": case "serviceinfo_uid": $rule = "permit_empty|numeric"; break; case "title": $rule = "required|trim|string"; break; case "price": $rule = "required|numeric"; break; case "type": case "status": $rule = "required|trim|string"; break; case "manufactur_at": $rule = "required|valid_date"; break; case "format_at": $rule = "permit_empty|valid_date"; break; default: $rule = parent::getFormRule($action, $field); break; } return $rule; } protected function convertFormDatas(string $action, string $field, array $formDatas): mixed { // 필드 값 존재 여부 확인 $value = array_key_exists($field, $formDatas) ? $formDatas[$field] : null; switch ($field) { case 'clientinfo_uid': case 'serviceinfo_uid': if ($value === '') { $value = null; } break; default: $value = parent::convertFormDatas($action, $field, $formDatas); break; } return $value; } //기본기능 //create용 장비코드 마지막번호 가져오기 final public function getLastestCode(string $format, int $default): string { $entity = $this->selectMax($this->primaryKey)->first(); $pk = (int) ($entity->getPK() ?? $default); // 정수로 강제 변환 return sprintf($format, date('ymd'), $pk + 1); } }