>  기사  >  PHP 프레임워크  >  ThinkPHP의 자동 검증 및 검증 규칙에 대한 자세한 설명

ThinkPHP의 자동 검증 및 검증 규칙에 대한 자세한 설명

angryTom
angryTom앞으로
2020-03-23 14:54:225860검색

이 글은 thinkphp의 자동 검증 방법과 검증 규칙을 자세히 소개하고 있으니 thinkphp를 공부하는 친구들에게 도움이 되었으면 좋겠습니다!

ThinkPHP의 자동 검증 및 검증 규칙에 대한 자세한 설명

ThinkPHP의 자동 검증 및 검증 규칙에 대한 자세한 설명

ThinkPHP에는 모델의 비즈니스 규칙 검증을 완료하기 위해 데이터 객체의 자동 검증 기능이 내장되어 있습니다. 자동 유효성 검사는 데이터 개체를 기반으로 하며 대부분의 경우 데이터 개체는 $_POST 형식(절대 아님)을 기반으로 생성됩니다.

기본 자동 확인 기능에는 필수 필드, 이메일 형식, 고유성, URL 주소, 숫자, 두 필드가 동일한지 여부, 특정 값과 동일한지 등이 포함됩니다.

시스템의 자동 검증 기능을 사용하려면 해당 Model 클래스에서 $_validate 속성(여러 검증 요소로 구성된 배열)만 정의하면 됩니다. 구문은 다음과 같습니다.

protected $_validate = array(
    array(验证字段,验证规则,错误提示[,验证条件][,附加规则][,验证时间])
};

(추천 튜토리얼: thinkphp 튜토리얼)

ThinkPHP 자동 확인 형식 설명:
검증 요소 설명
검증 필드 가 필요합니다. 확인해야 하는 양식 필드의 이름입니다. 이 필드는 반드시 데이터베이스 필드일 필요는 없지만 확인 코드 등과 같은 양식의 일부 보조 필드일 수도 있습니다.
확인 규칙 필수입니다. 확인할 규칙은 추가 규칙과 함께 사용해야 합니다.
오류 메시지 필수입니다. 인증 실패 시 프롬프트 메시지.
확인 조건 선택 사항입니다. 포함:
  1. Model::EXISTS_TO_VAILIDATE 또는 0: 필드가 존재할 때 확인(기본값)
  2. Model::MUST_TO_VALIDATE 또는 1: 확인해야 함
  3. Model::VALUE_TO_VAILIDATE 또는 2: 값이 비어 있지 않을 때 확인
추가 규칙 선택 사항. 다음을 포함한 확인 규칙과 함께 사용됩니다.
  1. regex: 이전에 정의된 확인 규칙이 정규식임을 나타내는 확인을 위해 정규식을 사용합니다(기본값)
  2. unique: 고유성을 확인합니다. 시스템은 현재 값을 기반으로 데이터베이스를 쿼리합니다. 동일한 값이 존재하는지 확인하는 필드
  3. confirm: 양식의 두 필드가 동일한지 확인합니다. 앞서 정의한 유효성 검사 규칙은 필드 이름입니다.
  4. equal: 특정 값과 같은지 확인합니다. 이전 검증 규칙에 의해 정의됨
  5. in: 특정 범위 내에 있는지 검증하려면 이전에 정의된 검증 규칙이 배열이어야 함
  6. function: 함수 검증을 사용하여 이전에 정의한 검증 규칙이 함수 이름임을 나타냄
  7. 콜백: 메소드 검증을 사용합니다. 이전에 정의된 검증 규칙은 현재 모델 클래스의 A 메소드
검증 시간 선택 사항입니다. 포함:
  1. Model:: MODEL_INSERT 또는 1: 데이터 추가 시 확인
  2. Model:: MODEL_UPDATE 또는 2: 데이터 편집 시 확인
  3. Model:: MODEL_BOTH 또는 3: 모든 경우에 확인(기본값)

자동 확인 예시

다음 예시에서는 기사 제목을 반드시 입력해야 하는지 확인하고 제목이 이미 존재하는지 여부를 감지합니다.

class ArticleModel extends Model{
    protected $_validate = array(
        array('title','require','标题不能为空!'),
        array('title','','标题已经存在!',0,'unique',1),
    };
}

작업 중 create 메소드를 사용하여 데이터 객체를 생성할 때 데이터 확인 작업이 수행됩니다. (POST 양식이 제출되면) 자동으로 수행됩니다. 처리):

$Article = D("Article");
if (!$Article->create()){
    // 如果创建失败,表示验证没有通过(注:可能原因之一)输出错误提示信息
    exit($Article->getError());
}else{
    // 验证通过,继续下一步流程如将数据写入数据表
}

시스템에는 require(필수), email(이메일 형식), url(URL 주소), 통화(currency), 숫자(number), qq(QQ 번호)), 영어(영문 문자)를 직접 사용할 수 있습니다.

사용자 경험을 고려하여 $Article->getError()에서 반환되는 오류 메시지는 일반적으로 Ajax 모드에서 반환됩니다. 자세한 내용은 "ThinkPHP Ajax"를 참조하세요.

나만의 검증 규칙 정의

내장된 검증 규칙이 검증 요구 사항을 충족할 수 없는 경우, 생년월일을 2000-1 형식으로 입력해야 하는 경우 등 자체 검증 규칙을 정의할 수 있습니다. -1:

array('birthday','/^d{4}-d{1,2}-d{1,2}$/','出生年月格式错误!'),

자세한 내용 관련 튜토리얼은 PHP 중국어 웹사이트를 참고하세요!

위 내용은 ThinkPHP의 자동 검증 및 검증 규칙에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 csdn.net에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제