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

angryTom
풀어 주다: 2020-03-23 14:54:22
앞으로
5861명이 탐색했습니다.

이 글은 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으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿