제목 | form_validate 2버전과 3버전 다른 동작이 발생합니다. | ||
---|---|---|---|
글쓴이 | 닉 | 작성시각 | 2016/02/01 09:53:00 |
|
|||
ci2 -> ci3 코드 리펙토링 중에 system/libraries/form_validate.php set_rules 메소드중 // No reason to set rules if we have no POST data if (count($_POST) == 0) { return $this; }
위 구문이 빠져서 ajax 폼과 검증이 분리되지 않은 로직에서 validation_errors() 가 생성되서 이전버전과 다른 결과가 나옵니다. 그리고 다음 줄에 아래와 같은 주석이 달려있어서 번역기를 돌려보면 '우리가 어떤 POST 데이터가없는 경우 이유는 규칙을 설정할 수 없습니다' 와 같은데, 대체 위 구문이 빠졌는지 이해할 수 없어서 질문올리게 되었습니다.
// No reason to set rules if we have no POST data // or a validation array has not been specified if ($this->CI->input->method() !== 'post' && empty($this->validation_data)) { return $this; }
제가 모르는 별다른 문제가 없다면 라이브러리 확장해서 변경하고 싶은데 변경해도 될가요? |
|||
다음글 | 안녕하세요. 코드이그나이터를 처음 접하는 사람입니다.ㅜ... (3) | ||
이전글 | 라이브러리 개념과 배열에 관해 몇가지 질문.. 부탁드립... (2) | ||
변종원(웅파)
/
2016/02/01 10:01:39 /
추천
0
|
닉
/
2016/02/01 10:26:21 /
추천
0
@웅파 답변 감사합니다. change log에 왜 바꼈는지 있네요..
제 경우, 폼과 폼검증 부분을 분리하지 않은 코딩한 경우에 문제가 되서요 ㅠㅠ //폼검증. if ($this->form_validation->run() == FALSE) { ... if( validation_errors() ){ json_alert( array( 'stat' => 0, 'msg' => strip_tags(validation_errors()) ) ); } else { json_alert( array( 'stat' => 1, 'returnHtml' => $returnHtml ) ); } } else { ... }
번역해보면, 고정 버그 (# 501) - : 문서는`폼 검증 도서관 <라이브러리 / form_validation>`방법 set_rules은 () 수 ($ _ POST) 대신에 실제로 중단 요청 방법 'POST'전에 경우 검사에 의존.
음..... |
닉
/
2016/02/01 10:29:51 /
추천
0
|
닉
/
2016/02/01 10:31:42 /
추천
0
일단 ci 따라가는걸로 해야겠어요 근대 께름치 않은 이 느낌 !;; |
닉
/
2016/02/01 10:56:57 /
추천
0
@ 히힛 ! if (validation_errors() && count($_POST) > 0) { ... } else { ... } 요렇게 하면 라이브러리 확장 안해도 될듯해요...! |
ajax를 get으로 호출하시는건 아닐테구요.
post로 호출하면 아무 문제 없을 건데요? 데이터 안넘어가면 폼검증에서 에러를 리턴할거구요. ^^
ci3 change log나 버그리포트를 보면 답이 있을겁니다.