title = lang("{$this->getService()->getClassName()}.title"); $this->class_path .= $this->getService()->getClassName(); $this->uri_path .= strtolower($this->getService()->getClassName('/')) . '/'; // $this->view_path .= strtolower($this->getService()->getClassName()) . DIRECTORY_SEPARATOR; } final public function getService(): UserService { if (!$this->_service) { $this->_service = new UserService($this->request); } return $this->_service; } public function getHelper(): mixed { if (!$this->_helper) { $this->_helper = new UserHelper($this->request); } return $this->_helper; } //Index,FieldForm관련 protected function setValidation(Validation $validation, string $action, string $field, ?string $rule = null): Validation { switch ($field) { case 'role': //아래 Rule Array는 필드명.* checkbox를 사용 $validation->setRule("{$field}.*", $field, $rule); break; default: $validation = parent::setValidation($validation, $action, $field, $rule); break; } return $validation; } //Index,FieldForm관련. //View관련 protected function view_process($uid): mixed { $fields = [ 'fields' => ['id', 'name', 'email', 'mobile', 'role', 'status'], ]; $this->init('view', $fields); return parent::view_process($uid); } protected function index_process(): array { $fields = [ 'fields' => ['id', 'name', 'email', 'mobile', 'role', 'status'], ]; $this->init('index', $fields); return parent::index_process(); } }