field가 array 입니다.\n" . var_export($field, true)); } switch ($field) { case "id": $rule = "required|trim|min_length[4]|max_length[20]"; $rule .= $action == "create" ? "|is_unique[{$this->table}.{$field}]" : ""; break; case "passwd": $rule = $action == "create" ? "required" : "if_exist" . "|trim|string"; break; case "confirmpassword": $rule = $action == "create" ? "required" : "if_exist" . "|trim|string|matches[passwd]"; break; case "email": $rule = "required|trim|valid_email"; break; case "role": $rule = "required|trim|string"; break; default: $rule = parent::getFieldRule($action, $field); break; } return $rule; } protected function convertEntityData(string $field, array $formDatas): mixed { switch ($field) { case "passwd": $value = password_hash($formDatas[$field], PASSWORD_DEFAULT); break; case "confirmpassword": $value = password_hash($formDatas[$field], PASSWORD_DEFAULT); break; default: $value = parent::convertEntityData($field, $formDatas); break; } return $value; } public function getFormFieldOption(string $field, array $options = []): array { switch ($field) { default: $this->orderBy(self::TITLE, 'asc'); $options = parent::getFormFieldOption($field, $options); break; } return $options; } public function getEntityByPK(string $uid): null|UserEntity { $this->where($this->getPKField(), intval($uid)); return $this->getEntity(); } public function getEntityByID(string $id): null|UserEntity { $this->where('id', $id); return $this->getEntity(); } //create용 public function create(array $formDatas = []): UserEntity { return $this->create_process(new UserEntity(), $formDatas); } //modify용 public function modify(UserEntity $entity, array $formDatas): UserEntity { return $this->modify_process($entity, $formDatas); } //List 검색용 public function setList_WordFilter(string $word): void { $this->orLike(self::TABLE . '.id', $word, 'both'); $this->orLike(self::TABLE . self::TITLE, $word, 'both'); $this->orLike(self::TABLE . '.email', $word, 'both'); } }