CI 묻고 답하기

제목 뭔가 잘못짠거 같아요.
글쓴이 니삼 작성시각 2013/03/18 19:40:55
댓글 : 5 추천 : 0 스크랩 : 0 조회수 : 13223   RSS
CI 폼검증을 이용해 view의 div에 특정 문자열(error)를 넣어주려고 합니다.

ex) 특정 필드의 폼검증에 실패하면 view의 input box의 class에 error


처음에 헬퍼로 form_validation에서 error를 가지고 있는 애를 가지고 오려고하니

_field_data 녀석이더라고여 .. 그래서 헬퍼로
$CI =& get_instance();
echo $CI->form_validation->_field_data[$field]['error'];
접근하려 했는대 괜히 _가 붙은게 아닌지 프로텍트 걸려서 접근을 못하더라구요

그래서 라이브러리 하나 새로 짜서

class MY_Form_validation extends CI_Form_validation
{
 function __construct()
 {
  parent::__construct();
 }

 function error_class($field, $error_class = "error")
 {
  if( !empty($this->_field_data[$field]['error']) ){
   echo $error_class;
  }
 }
}
form_validation 상속받아서 값있는지 없는지 체크하고

다시 헬퍼에서

<?php
if ( ! function_exists('my_error_class')) {
 function my_error_class($field, $error_class = "error") {
  $CI =& get_instance();
  echo $CI->form_validation->error_class($field, $error_class);
 }
}
?>
다시 view에서

<div class="control-group <?php echo my_error_class('mb_name');?>">

뭐 이런식으로 가져왔어요; 작동은 잘되는대


저가 객체에 대한 이해도가 낮아서 코드를 이상하게 확장시킨것 같아 질문 여쭈어봅니다;;;

더 좋은 방법이 있다면 소개시켜주세요 뭔가 잘못한것 같습니다 ㅡㅠ;
 다음글 ci 를 사용하며 난관에 빠졌습니다. session 이... (22)
 이전글 함수속에 ::parent (9)

댓글

변종원(웅파) / 2013/03/18 21:40:15 / 추천 0
매뉴얼에 전체 에러, 개별 에러 보여주는게 있는데 그거 말고 다른게 필요한건가요?
니삼 / 2013/03/18 21:45:06 / 추천 0
웅파//
음.. 디자인 적인 요소라고 해야하나요. input박스가 빨갛게 변한다던가 포커스가 그쪽으로 옮겨진다 던가 하는 부분 때문에 ..
변종원(웅파) / 2013/03/18 22:11:56 / 추천 0
그건 개뱔에러가 있을때 if문 처리하시면 되죠. ^^
변종원(웅파) / 2013/03/18 22:14:12 / 추천 0
그리고 매뉴얼 보시면 에러메세지를 사용자선언할 수있습니다. Div class 주서 사용자 화 하시면 됩니다
니삼 / 2013/03/18 22:45:18 / 추천 0
에러메세지는 사용자선언 못하는게. ~~필드가 잘못됬습니다. 라는 멘트는 계속 쓸거라서 못바꿨었어요.
1필드 자체가 틀렸는지 체크하는 방법이 없는것 같아 이렇게 할 수 밖에 없었어요.. 흠 다른방법이 있으려나