개발 Q&A

제목 form_validation 확장 문의 드립니다.
카테고리 PHP
글쓴이 무정 작성시각 2020/10/13 10:48:43
댓글 : 5 추천 : 0 스크랩 : 0 조회수 : 9913   RSS
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');

class MY_Form_validation extends CI_Form_validation {

  protected $CI;

  public function __construct($rules = array())

  {

    parent::__construct($rules);

    $this->CI =& get_instance();

  }

public function is_unique_update($str, $field) {

  

  echo "sub--".$str."//".$field;

  exit;

   if (substr_count($field, '.')==3) {

     list($table,$field,$id_field,$id_val) = explode('.', $field);

     $query = $this->CI->db->limit(1)->where($field,$str)->where($id_field.' != ',$id_val)->get($table);

   } else {

     list($table, $field)=explode('.', $field); $query = $this->CI->db->limit(1)->get_where($table, array($field => $str));

   }

   return $query->num_rows() === 0;

  }

}



컨트롤러 부분

public function __construct() 

{

   parent::__construct();

   // load form and url helpers

   $this->load->helper(array('form', 'url'));

   // load form_validation library

   $this->load->library('form_validation');

}

public function index(){

  $this->form_validation->set_rules('tel', '휴대폰', 'required|numeric|is_unique_update[member.tel.no.'.$data['no'].']',array('required'=>'휴   대폰을 입력해주세요.','numeric'=>'숫자만 입력해주세요.', 'is_unique_update'=>'이미 사용되고 있는 휴대폰입니다.'));

}

이렇게 사용하려고 하는데..

디비에 등록되지 않는 휴대폰인데도 이미 사용되고 있는 휴대폰이라고 에러메세지가 떠서 한번 찍어보려고 하는데 찍히질 않네요..

어느 부분이 잘못된걸까요.. 검색하다가 저 부분을 찾아서 해보고 있는데 잘 안되네요~

 다음글 데이터 마이그레이션 질문이요 (2)
 이전글 이제 갓 입문한 초보 질문합니다. (3)

댓글

변종원(웅파) / 2020/10/13 11:02:24 / 추천 0
$this->form_validation->set_rules('version', 'version', ['required',
    ['version_callable',
        function($value)
        {
            $this->form_validation->set_message('version_callable', '{field}은(는) "0.0.0"형식이어야 합니다.');

            $return = preg_match("/[0-9]{1,}\.[0-9]{1,}\.[0-9]{1,}/", $value, $matchs);

            if($return)
            {
                return true;
            }

            return false;
        }]
]);
무정 / 2020/10/13 11:17:03 / 추천 0
답변 감사합니다. 제가 초보라 그런데 위에 질문에 대한 답변이 맞는지요~
변종원(웅파) / 2020/10/13 11:23:46 / 추천 0
어제도 매뉴얼 참고하라고 말씀드렸구요. 검색하신거 보단 콜백함수가 더 깔끔하고 직관적이라 올려드린겁니다.
한대승(불의회상) / 2020/10/13 11:28:13 / 추천 0

결과를 찍어보고 싶다면 log_message() 함수를 사용해보세요.

출력 로그는  application/logs 폴더 아래 생성됩니다.

메뉴얼 : http://www.ciboard.co.kr/user_guide/kr/general/errors.html#log_message

 

무정 / 2020/10/13 13:01:56 / 추천 0

말씀 주신것처럼 찍어보니 

DEBUG - 2020-10-13 12:50:37 --> Unable to find validation rule: is_unique_update

이게 나오네요~ 유효성 규칙을 찾을 수 없다고 하는데.. 

application/libraies/MY_Form_validation.php 부분을 못 읽은것 같습니다. 더 찾아봐야겠네요~