thinkpHP 폼 자동 검증 실현

3839 단어
어제 저녁 에 우리 첫째 가 나 에 게 폼 자동 검증 기능 을 하 라 고 해서 한참 동안 고민 하 다가 많은 홈 페이지 의 지식 을 참고 하고 나 서 야 나 왔 다. 아, 어쨌든 나의 성 과 를 공유 하 자!
thinkphp 는 Model 기본 클래스 에서 자동 으로 검 증 된 함수 와 정규 표현 식 을 정의 합 니 다. 저 희 는 해당 하 는 데이터베이스 시트 의 모델 클래스 에서 $ 를 만 들 수 있 습 니 다.vaidate 속성 만 있 으 면 됩 니 다.
1. Model 기본 클래스 를 찾 으 면 proctected $ 를 볼 수 있 습 니 다.validate       = array();  // 자동 검증 정, 이것 은 배열 형식 입 니 다. 아래 에 대응 하 는 데이터 모델 파일 에서 정의 합 니 다.
2、
 
  
public function CheckVerify($verify) {

   if (md5($verify) != Session::get('verify')) return false;
        return true;
}
//

 
  
   protected $_validate = array(
        array("title", "require", " !"),
        array('categoryId', 'require', " !"),
        array('content', 'require', " !"),
        array('verify', 'require',' !'),
        array('verify', 'CheckVerify', ' !', 0, 'callback')
    );

3. 형식 설명: array (검증 필드, 검증 규칙, 오류 알림, 검증 조건, 추가 규칙, 검증 시간),
4. 매개 변수 설명:
인증 필드: 검증 이 필요 한 폼 필드 이름 입 니 다. 이 필드 는 데이터베이스 필드 가 아니 라 폼 의 보조 필드 일 수도 있 습 니 다. 예 를 들 어 비밀번호 확인 과 인증 코드 등 입 니 다.검증 규칙: 검증 을 하려 면 추가 규칙 (필수) 을 결합 해 야 합 니 다. 공식 적 으로 포 함 된 규칙 은 다음 과 같 습 니 다 (자신 도 추가 할 수 있 습 니 다).
 
  
$validate = array(
   'require'=> '/.+/',
   'email' => '/^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/',
   'url' => '/^http:\/\/[A-Za-z0-9]+\.[A-Za-z0-9]+[\/=\?%\-&_~`@[\]\':+!]*([^<>\"\"])*$/',
   'currency' => '/^\d+(\.\d+)?$/',
   'number' => '/^\d+$/',
   'zip' => '/^[1-9]\d{5}$/',
   'integer' => '/^[-\+]?\d+$/',
   'double' => '/^[-\+]?\d+(\.\d+)?$/',
   'english' => '/^[A-Za-z]+$/',
);

알림 정보: 검증 실패 후의 알림 정보 정의 (필수), 검증 조건: (선택 가능) 검증 조건 에 사용 되 는 규칙 은 세 가지 가 있 습 니 다. 모델: EXISTSTO_VAILIDATE 또는 0 존재 필드 에 대한 검증 (기본 값) 모델: MUSTTO_VALIDATE 또는 1 모델 검증 필요: VALUETO_VAILIDATE 또는 2 값 이 비어 있 지 않 을 때 추가 규칙 을 검증 합 니 다. regex 정규 검증 은 앞의 인증 규칙 이 정규 표현 식 임 을 설명 합 니 다.function 는 함수 검증 을 사용 하여 앞의 그 검증 이 함수 이름 임 을 설명 합 니 다.callback 사용 방법 검증 은 검증 규칙 이 Model 류 의 방법 임 을 설명 합 니 다.confirm 인증 폼 의 두 필드 가 같 는 지, 검증 규칙 은 필드 이름 입 니 다.equal 은 특정한 값 과 같 는 지 검증 합 니 다. 이 값 은 앞의 검증 규칙 에 의 해 정 의 된 것 입 니 다.in. 특정한 범위 안에 있 는 지 검증 하고 앞에서 정 의 된 것 은 배열 입 니 다.유 니 크 검증 이 유일한 지, 시스템 은 필드 의 현재 값 조회 데이터베이스 에 따라 같은 값 이 존재 하 는 지 판단 합 니 다.이 동시에 시스템 은 자주 사용 하 는 정규 검증 규칙 도 내장 되 어 있 습 니 다. 이 절 에서 사용 할 수 있 습 니 다. 예 를 들 어 require 필드 가 필요 하고 이메일 메 일 박스 도 포함 합 니 다.currency 화폐, number 숫자, 이런 검증 규칙 은 직접 사용 할 수 있 습 니 다.
인증 시간: (선택 가능)
01.Model:: MODEL_INSERT 또는 1 신규 데이터 검증 02. Model:: MODELUPDATE 또는 2 데이터 편집 시 검증 03. Model: MODELBOTH 또는 3 모든 상황 에서 검증 (기본 값)
5. 공식 예시:
 
  
protected $_validate  =  array(  
array('verify','require',' !'), //   
array(name,'',' !',0,'unique',1), // name   
array('value',array(1,2,3),' !',2,'in'), //   
array('repassword','password',' ',0,'confirm'), //   
array('password','checkPwd',' ',0,'function')//  
);

    우리 맏형 의 요구 에 부합 되 는 지 모 르 겠 지만, 어쨌든 나 온 셈 이 야. 너무 힘 들 어!!  이 밤 에 코드 를 찾 아 사례 를 찾 아 위 로 를 구 합 니 다!!

좋은 웹페이지 즐겨찾기