addClassPaths('Part'); } abstract public function attachToServerPart(ServerPartEntity $serverPartEntity, array $formDatas = []): PartEntity; abstract public function detachFromServerPart(ServerPartEntity $serverPartEntity, array $formDatas = []): PartEntity; final protected function updatePart($entity, array $formDatas): PartEntity { $updateResult = $this->model->update($entity->getPK(), $formDatas); if ($updateResult === false || $updateResult === 0) { // 업데이트 실패 시 예외 처리 $errors = $this->model->errors(); $errorMsg = is_array($errors) ? implode(", ", $errors) : "DB 업데이트 실패 또는 변경된 행 없음."; throw new \Exception(__METHOD__ . ": " . $errorMsg); } $entity->merge($formDatas); return $entity; } }