diff --git a/app/Helpers/Equipment/ServerHelper.php b/app/Helpers/Equipment/ServerHelper.php index e90769c..786f0d7 100644 --- a/app/Helpers/Equipment/ServerHelper.php +++ b/app/Helpers/Equipment/ServerHelper.php @@ -62,6 +62,9 @@ class ServerHelper extends EquipmentHelper 'template' => 'serverlist', ]); break; + case 'viewer': + $value = $viewDatas['entity']->getViewer() ? $this->getListButton('console', "", $viewDatas) : ""; + break; default: $value = parent::getFieldView($field, $value, $viewDatas, $extras); break; diff --git a/app/Services/CommonService.php b/app/Services/CommonService.php index 3deb670..c1de3e8 100644 --- a/app/Services/CommonService.php +++ b/app/Services/CommonService.php @@ -199,44 +199,19 @@ abstract class CommonService } } //CURD 결과처리용 - protected function handle_save_result(mixed $result, int|string $uid): int|string - { - if ($result === false) { - $errors = $this->model->errors(); - $errorMsg = is_array($errors) ? implode(", ", $errors) : "DB 저장 작업이 실패했습니다."; - throw new RuntimeException(static::class . '->' . __FUNCTION__ . "에서 오류발생: " . $errorMsg); - } - $pk = $uid; // 기본적으로 기존 $uid (업데이트의 경우) - // AUTO_INCREMENT 필드를 사용하는 경우, INSERT 작업이라면 새로 생성된 ID를 가져옵니다. - // INSERT 작업은 보통 $uid가 0 또는 null/빈 문자열일 때 실행됩니다. - if ($this->model->useAutoIncrement() && (empty($uid) || $uid === 0)) { - // CodeIgniter 모델의 getInsertID()를 사용하여 새로 생성된 PK를 확실히 가져옵니다. - $insertID = $this->model->getInsertID(); - if ($insertID > 0) { - $pk = $insertID; - } - } elseif ($this->model->useAutoIncrement() && is_numeric($result) && (int) $result > 0) { - // save()가 성공적인 INSERT 후 PK를 반환하는 경우를 대비 (CI4의 동작) - $pk = (int) $result; - } - // 최종적으로 PK가 유효한지 확인합니다. - if (empty($pk)) { - $errors = $this->model->errors(); - $errorMsg = is_array($errors) && !empty($errors) ? implode(", ", $errors) : "DB 작업 성공 후 PK를 확인할 수 없거나 모델 오류 발생:{$pk}"; - throw new RuntimeException(static::class . '->' . __FUNCTION__ . "에서 오류발생: " . $errorMsg); - } - return $pk; - } protected function save_process(CommonEntity $entity): CommonEntity { try { - // INSERT 시 Entity의 PK는 0 또는 NULL이어야 함 (DB가 ID를 생성하도록) - $initialPK = $entity->getPK(); - $result = $this->model->save($entity); - // 최종적으로 DB에 반영된 PK를 반환받습니다. (UPDATE이면 기존 PK, INSERT이면 새 PK) - $entity->{$this->getPKField()} = $this->handle_save_result($result, $initialPK); - // handle_save_result에서 확인된 최종 PK를 사용하여 DB에서 최신 엔티티를 가져옴 + if (!$this->model->save($entity)) { + $errors = $this->model->errors(); + $errorMsg = is_array($errors) ? implode(", ", $errors) : "DB 저장 작업이 실패했습니다."; + throw new RuntimeException(static::class . '->' . __FUNCTION__ . "에서 오류발생: " . $errorMsg); + } + // CodeIgniter 모델의 getInsertID()를 사용하여 새로 생성된 PK를 확실히 가져옵니다. + if ($this->model->useAutoIncrement()) { + $entity->{$this->getPKField()} = $this->model->getInsertID(); + } return $entity; } catch (\Throwable $e) { log_message('debug', __FUNCTION__ . ":" . var_export($entity, true)); diff --git a/app/Views/cells/server/detail.php b/app/Views/cells/server/detail.php index 373ea89..db535d2 100644 --- a/app/Views/cells/server/detail.php +++ b/app/Views/cells/server/detail.php @@ -1,35 +1,33 @@ - - - - - - - - + + + + + - - - +
getTitle() ?>
+
getIP() ?>
+
getOS() ?>
+
금액 : getPrice()) ?>
+
+ getFieldView('viewer', $serverCellDatas['entity']->getViewer(), $serverCellDatas) ?> +
+ + + +
- getServerInfoUid() == $entity->getPK() ? "📌" : "getPK()}?serverinfo_uid={$entity->getPK()}\">✔️" ?> - getFieldView('SERVER', "", ['serverEntity' => $entity]) ?> - getPK()}?serverinfo_uid={$entity->getPK()}\">❌" ?> - 파트정보
-
- getFieldView('switchinfo_uid', $entity->getSwitchInfoUid(), $serverCellDatas) ?> -
-
getTitle() ?>
-
getIP() ?>
-
getOS() ?>
-
금액 : getPrice()) ?>
- getViewer()): ?> + + +
+ getServerInfoUid() == $entity->getPK() ? "📌" : "getPK()}?serverinfo_uid={$entity->getPK()}\">✔️" ?> + getFieldView('SERVER', "", ['serverEntity' => $entity]) ?> + getPK()}?serverinfo_uid={$entity->getPK()}\">❌" ?> + 파트정보
- getListButton('console', "", $serverCellDatas) ?> + getFieldView('switchinfo_uid', $entity->getSwitchInfoUid(), $serverCellDatas) ?>
- -
- $entity->getPK(), - 'types' => SERVERPART['ALL_PARTTYPES'] - ]) ?> -
+ $entity->getPK(), + 'types' => SERVERPART['ALL_PARTTYPES'] + ]) ?> +
\ No newline at end of file