_clientService) { $this->_clientService = new ClientService($this->request); } return $this->_clientService; } //ServiceController,ServiceItemController,ServicePaymentController등에서 사용됨 final protected function initServiceItemOptions(): void { //$item_type(CPU,RAM,STORAGE등)에 따라 선언된 getFormFieldOption용 foreach (SERVICE_ITEM_TYPES as $item_type => $label) { if ($item_type == 'IP') { $occupied_ips = []; $forbidden_ips = []; } $options = []; foreach ($this->getService()->getServiceItemLinkService($item_type)->getEntities() as $entity) { $options[$entity->getPK()] = $entity->getTitle(); if ($item_type == 'IP') { if ($entity->getStatus() === IpEntity::STATUS_OCCUPIED) { $occupied_ips[] = $entity->getPK(); } if ($entity->getStatus() === IpEntity::STATUS_FORBIDDEN) { $forbidden_ips[] = $entity->getPK(); } $this->occupied_ips = $occupied_ips; $this->forbidden_ips = $forbidden_ips; } } $this->setFilterFieldOption($item_type, $options); } } protected function getFormFieldOption(string $field, array $options = []): array { switch ($field) { case 'clientinfo_uid': case 'ownerinfo_uid': foreach ($this->getClientService()->getEntities() as $entity) { $options[$entity->getPK()] = $entity->getTitle(); } break; default: $options = parent::getFormFieldOption($field, $options); break; } return $options; } //Index,FieldForm관련 }