CI 묻고 답하기

제목 form_validation 에 관해 질문 드립니다!
글쓴이 초보러 작성시각 2014/09/23 03:31:00
댓글 : 5 추천 : 0 스크랩 : 0 조회수 : 14072   RSS
form_validation으로 인해 뽑아진 에러를 한번에 표현하지 않고 리스트나 어레이로 뽑을 수 있나요? 코드이그나이터를 시작한지 얼마 안되 코드이그나이터 관련 헬퍼들을 잘 몰라 이렇게 질문드립니다..
 다음글 혼자서 해결해보려고 했지만 도저히 안되서 여쭤보겠습니다... (6)
 이전글 ci 컨트롤러 관련해서 질문드립니다. (2)

댓글

한대승(불의회상) / 2014/09/23 09:24:17 / 추천 0
저도 불편하게 생각하고 있던 부분 입니다.
그래서... 아래 처럼 합니다. ^^
 
public function validation()
 {
  $ret = TRUE;

  $this->post_data = array(
   's_member_id' => $this->input->post('s_member_id'),
   's_password' => $this->input->post('s_password'),
   'referer' => $this->input->get_post('referer'),
   'ip_addr' => $this->input->ip_address()
  );

  // validation configure
  $config = array(
   array('field' => 's_member_id', 'label' => 'S_member_id', 'rules' => 'required|trim|xss_clean' ),
   array('field' => 's_password', 'label' => 'S_password', 'rules' => 'required|trim|xss_clean' ),
  );

  if($this->form_chk($config) == FALSE) {
   $this->responseCode = -1;
   
   foreach($this->error_chk() as $err) {
    if(strstr($err, 'S_member_id')) {
     $this->responseCode = 1;
     $err = $this->lang->line('s_member_id_error_msg');
     break;
    }
    if(strstr($err, 'S_password')) {
     $this->responseCode = 2;
     $err = $this->lang->line('s_password_error_msg');
     break;
    }
    if(strstr($err, 'S_jumin')) {
     $this->responseCode = 3;
     $err = $this->lang->line('s_jumin_error_msg');
     break;
    }
   }

   $this->responseMessage = $err ? $err : $this->lang->line('default_error_msg');
   $ret=FALSE;
  }

  $this->data = $this->post_data;

  return $ret;
 }
한대승(불의회상) / 2014/09/23 09:53:48 / 추천 0
    /**
     * 사용자 값 검증 후 에러를 검증 한다.
     *
     * @return array
     */
    public function error_chk()
    {
        return explode("\n", strip_tags(validation_errors()));
    }
한대승(불의회상) / 2014/09/23 09:55:57 / 추천 0
    /**
     * 입력된 사용자 값을 확인 한다.
     *
     * @return void
     */
    protected function form_chk($config)
    {
         // 필수 라이브러리 등록
        $this->load->library('form_validation');

        $this->form_validation->set_rules($config);

        return $this->form_validation->run();
    }
초보러 / 2014/09/23 10:57:08 / 추천 0
한대승//explode를 통해 나누고 값을 비교하는 방법이 있었네요! 어떻게 보면 간단하고 어떻게 보면 까다로운 방법인데 이렇게 가르쳐 주셔서 정말 감사드립니다 ㅎㅎ
변종원(웅파) / 2014/09/23 12:16:44 / 추천 0