field가 array 입니다.\n" . var_export($field, true)); } switch ($field) { case "id": $rule = "required|trim|min_length[4]|max_length[20]"; $rule .= in_array($action, ["create", "create_form"]) ? "|is_unique[{$this->table}.{$field}]" : ""; break; case "passwd": $rule = in_array($action, ["create", "create_form"]) ? "required|trim|string" : "if_exist|trim|string"; break; case "confirmpassword": $rule = in_array($action, ["create", "create_form"]) ? "required|trim|string|matches[passwd]" : "if_exist|trim|string|matches[passwd]"; break; case "email": $rule = "required|trim|valid_email"; $rule .= in_array($action, ["create", "create_form"]) ? "|is_unique[{$this->table}.{$field}]" : ""; break; case "role": $rule = "required|trim|string"; break; default: $rule = parent::getFormFieldRule($action, $field); break; } return $rule; } protected function convertEntityData(string $action, string $field, array $formDatas, mixed $entity): mixed { switch ($field) { case "passwd": $entity->$field = password_hash($formDatas[$field], PASSWORD_DEFAULT); break; case "confirmpassword": $entity->$field = password_hash($formDatas[$field], PASSWORD_DEFAULT); break; default: $entity = parent::convertEntityData($action, $field, $formDatas, $entity); break; } return $entity; } //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'); } }