>  기사  >  백엔드 개발  >  ThinkPHP 프레임워크 프로젝트 개발 주제--자동 검증

ThinkPHP 프레임워크 프로젝트 개발 주제--자동 검증

巴扎黑
巴扎黑원래의
2016-11-24 14:31:271163검색

WEB 프로젝트 개발 시 프로젝트의 모든 모듈에는 사용자 등록, 뉴스 추가, 제품 관리 등과 같은 데이터를 추가하는 기능이 있습니다. 그런 다음 양식을 사용하여 데이터를 전송하고, 데이터를 추가할 때, 프런트엔드 사용자나 백엔드 관리자 모두 유효하지 않은 데이터나 잘못된 데이터를 입력하는 것을 피할 수 없으므로 우리 프로젝트에서는 양식 데이터 확인이 필수적입니다. 따라서 WEB 프로젝트에 참여했거나 독립적으로 개발한 경우 데이터를 추가할 때 사용자 이름이 존재하는지, 인증 코드가 올바른지, 비밀번호가 일관되게 입력되었는지, 나이는 숫자 등입니다. 데이터베이스 검색을 많이 사용하고 정규식을 작성하는 등의 문제로 인해 모든 사람이 어려움을 겪게 됩니다.

ThinkPHP에는 모델의 비즈니스 규칙 검증을 완료하기 위해 데이터 객체의 자동 검증 및 자동 완성 기능이 내장되어 있습니다. 대부분의 경우 데이터 객체는 제출된 $_POST 데이터에 의해 생성됩니다. 형태. 시스템의 자동 검증 기능을 사용하려면 Model 클래스에 $_validate 속성만 정의하면 됩니다.

$_validate 속성의 검증 요소 형식:

배열(검증 필드, 검증 규칙, 오류 프롬프트, 검증 조건, 추가 규칙, 검증 시간)

*검증 필드: 양식 필드 이름, 참고: 이 필드는 데이터베이스 필드일 필요는 없으며 비밀번호 및 확인 코드 확인 등과 같은 양식의 일부 보조 필드일 수도 있습니다.

*검증 규칙: 검증할 규칙은 때때로 추가 규칙과 결합되어야 합니다.

내장된 유효성 검사 규칙 - 필수 필드, 이메일 주소, URL 주소, 통화, 숫자를 포함합니다. 이러한 유효성 검사 규칙은 직접 사용할 수 있습니다. 참고: 다른 확인 규칙이 있는 경우 자체 방법을 작성해야 합니다.

* 프롬프트 메시지: 검증 실패 후 프롬프트 정보를 위해 사용됩니다.

확인 조건:

0 또는 모델::EXISTS_TO_VAILIDATE--필드가 존재하는지 확인합니다(기본값)

1 또는 모델::MUST_TO_VALIDATE--확인해야 합니다

2 또는 모델::VALUE_TO_VAILIDATE--값이 비어 있지 않은지 확인

추가 규칙: 확인 규칙과 함께

regex를 사용하여 정규식을 사용하여 확인합니다. 정의된 확인 규칙은 정규식(기본값)

함수는 함수 확인을 사용하고, 앞서 정의한 확인 규칙은 함수 이름입니다. 참고: 시스템 함수 또는 사용자 지정 함수

콜백은 메서드 확인을 사용하며, 확인 앞서 정의한 규칙은 현재 Model 클래스의 메서드입니다. 참고: 사용자 정의 메서드

confirm은 양식의 두 필드가 동일한지 확인합니다. 앞서 정의한 확인 규칙은 필드 이름

equal은 이전 유효성 검사 규칙

에서 정의한 특정 값과 같은지 확인합니다.

특정 범위 내에 있는지 확인합니다. 참고: 이전에 정의한 유효성 검사 규칙은 배열이어야 합니다

unique 고유한지 확인합니다. 시스템은 필드를 기반으로 합니다. 현재 값은 동일한 값이 존재하는지 확인하기 위해 데이터베이스를 쿼리합니다. 참고: 데이터베이스가 요청됩니다.

확인 시간:

1 또는 모델:: MODEL_INSERT--새 데이터 추가 시 확인

2 또는 모델:: MODEL_UPDATE--데이터 편집 시 확인

3 또는 모델:: MODEL_BOTH--모두 확인 상황 (기본값)

$_validate 속성에 익숙해지면 이를 사용해야 합니다. 특정 데이터를 검증할 때 검증 요소를 작성하는 방법을 분석하기 위해 예를 들어보겠습니다.

ThinkPHP를 공부하셨다면 매뉴얼에서 자동 확인에 대한 몇 가지 예를 보셨을 것입니다. 여기에는 누구나 배우고 사용할 수 있도록 일반적으로 사용되는 대부분의 예가 요약되어 있습니다. 여기에서는 언급되지 않았지만 데이터 자동 확인의 모든 방법을 개선하기 위해 브레인스토밍할 수 있습니다.

예:

protected $_validate = array(

array('username','require','Username이 필요합니다!'), // 데이터가 비어 있음 참고: 기본적으로 모든 추가 및 수정 사항이 확인됩니다.

array('username','','사용자 이름이 이미 존재합니다!',0,'unique',1), // 사용자 이름이 있는지 확인합니다. Unique

array('password','checkPwd','Password 형식이 올바르지 않음',0,'function'), // chenkPwd 메소드를 사용하여 비밀번호 형식을 사용자 정의할 수 있습니다

array(' repassword','password','비밀번호가 잘못된지 확인',0,'confirm'), // 확인 비밀번호가 비밀번호와 일치하는지 확인

array(' sex','array(0,1,2 )','성별은 0,1,2',0,'in'이어야 합니다), // 데이터가 범위 내에 있는지 확인

array( 'age','number','Age는 숫자여야 합니다'), // 데이터가 숫자인지 확인

array('email','email','이메일 형식이 잘못되었습니다.'), // 정기 확인 메일 내장

array(' email','/^/w+([-+.]/w+)*@/w+([-.]/w+)*/./ w+([-.]/w+)*$/','이메일 형식이 잘못됨), // 맞춤형 정기 검증 데이터

array('mypage','url','개인 URL 형식이 잘못되었습니다.') , // 내장된 정기인증 URL 주소

array ('verify','****','인증코드가 틀렸습니다',0,'equal'), // 데이터가 맞는지 확인 특정 값과 같음 참고: ****는 임의의 인증 코드일 수 있습니다

array('salary','currency','급여 인증이 올바르지 않습니다.','0'), // 내장 검증 통화 데이터

);

ThinkPHP의 자동 확인 기능은 거의 모든 데이터 확인 요구 사항을 충족할 수 있으므로 ThinkPHP를 사용하여 프로젝트에 데이터를 추가하고 확인할 때 자동 확인 및 자동 확인 기능을 사용하면 번거로운 데이터 확인 문제에 대해 걱정할 필요가 없습니다. 완성 기능. 자동완성 기능은 다음번에 설명 및 요약해 드리며, ThinkPHP 프로젝트 모듈 제작 및 프로젝트 예제도 순차적으로 공개될 예정이니 많은 지원 부탁드립니다.


성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.