CI 묻고 답하기

제목 db 수정시 is_unique 질문요.
글쓴이 구름정원 작성시각 2013/06/15 18:49:52
댓글 : 2 추천 : 0 스크랩 : 0 조회수 : 12709   RSS
 form_validation 에서 검사규칙셋에 is_unique[table.field] 라고 하면 유일한 값인지 체크해 주잖아요.

그런데 data를 수정할 때요.
2개의 unique 필드가 있고 form에서 두개의 unique 필드 모두 입력받아요.
그런데 그 중에 하나만 수정하고 하나는 원래 값 그대로에요.

이럴 경우에 수정안된 field는 unique에 걸려서 해당 data를 수정을 못하네요.
이런 경우는 어떻게 체크해야 하나요?

form값 체크에서 
is_unique[table.field] 를 취소하고 자기 자신을 제외한 유일한 값인지 직접 코드를 짜야 하나요?

 다음글 컨트롤러 내 모델 호출 시 오류가 뜹니다. (7)
 이전글 CI로 만든 웹 어플에서 구글 캘린더 연동 (3)

댓글

변종원(웅파) / 2013/06/15 21:54:30 / 추천 0
수정할때는 $_POST 전송값이 있을때와 없을때로 나눠서 룰을 정하면 될것 같네요.

아니면 말씀하신대로 is_unique()함수가 아니라 폼검증용 콜백함수 만들어서 사용하시면 됩니다.
구름정원 / 2013/06/16 11:49:58 / 추천 0
 웅파님 고맙습니다 ^^. codeigniter가 첨이라 해결책을 찾는데 시간이 좀 걸리네요.
웅파님 조언대로 콜백함수를 만들기 위해서 매뉴얼을 보고 Form_validation.php 를 확장 하고 is_update_unique()를 만들었습니다.
 
덕분에 쉽게 해결됐네요.