어젯밤에 저희 상사가 저에게 양식 자동 확인 기능에 대해 작업해 달라고 부탁했습니다. 오랫동안 고민하다가 공식 홈페이지에서 많은 지식을 얻어서 만든 것인데요. 결과!
thinkphp는 Model 기본 클래스에서 자동 확인 기능과 정규식을 정의합니다. 해당 데이터베이스 테이블의 모델 클래스 아래에 $_validate 속성만 설정하면 됩니다.
1. Model 기본 클래스를 찾아 protected $_validate = array(); // 아래 해당 데이터 모델 파일에 정의합니다.
2,
public <span>function</span><span> CheckVerify($verify) { </span><span>if</span> (md5($verify) != Session::get('verify')) <span>return</span> <span>false</span><span>; </span><span>return</span> <span>true</span><span>; }</span>
protected $_validate =<span> array( array(</span>"title", "require", "标题必须!"<span>), array(</span>'categoryId', 'require', "类别必须!"<span>), array(</span>'content', 'require', "内容必须!"<span>), array(</span>'verify', 'require','验证码必须!'<span>), array(</span>'verify', 'CheckVerify', '验证码错误!', 0, 'callback'<span>) );</span>
3. 형식 설명: 배열(검증 필드, 검증 규칙, 오류 프롬프트, 검증 조건, 추가 규칙, 검증 시간),
확인 필드: 확인해야 하는 양식 필드의 이름입니다. 이 필드는 반드시 데이터베이스 필드일 필요는 없지만 비밀번호 및 확인 코드 확인 등과 같은 양식의 일부 보조 필드일 수도 있습니다.
확인 규칙: 확인 규칙은 추가 규칙과 결합되어야 합니다(필수). 포함된 공식 규칙은 다음과 같습니다(직접 추가할 수도 있음).
1 $validate =<span> array( </span>2 3 'require'=> '/.+/'<span>, </span>4 5 'email' => '/^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/'<span>, </span>6 7 'url' => '/^http:\/\/[A-Za-z0-9]+\.[A-Za-z0-9]+[\/=\?%\-&_~`@[\]\':+!]*([^<>\"\"])*$/'<span>, </span>8 9 'currency' => '/^\d+(\.\d+)?$/'<span>, </span>10 11 'number' => '/^\d+$/'<span>, </span>12 13 'zip' => '/^[1-9]\d{5}$/'<span>, </span>14 15 'integer' => '/^[-\+]?\d+$/'<span>, </span>16 17 'double' => '/^[-\+]?\d+(\.\d+)?$/'<span>, </span>18 19 'english' => '/^[A-Za-z]+$/'<span>, </span>20 21 );<br>
검증 조건: (선택)
검증 조건에는 세 가지 규칙이 있습니다.
모델::EXISTS_TO_VAILIDATE 또는 0 필드가 존재하는지 확인하세요. (기본값)
모델::MUST_TO_VALIDATE 또는 1 확인해야 함
모델::VALUE_TO_VAILIDATE 또는 2 값이 비어 있지 않은 경우 확인
추가 규칙:
regex 이전 확인을 나타내는 정규 확인 규칙은 다음과 같습니다. 정규 표현식은
함수 확인을 사용하여 이전 확인이 함수 이름임을 나타냅니다.
콜백은 확인 규칙이 모델 클래스의 메서드임을 나타내는 메서드 확인을 사용합니다. 두 필드가 동일한지 확인하는 규칙은
equal은 이전 확인 규칙에서 정의한 특정 값과 같은지 확인합니다.
in은 특정 값 내에 있는지 확인합니다. 이전에 정의된 범위는 배열입니다.
고유 여부를 확인하는 데 사용됩니다. 시스템은 필드의 현재 값을 기반으로 데이터베이스를 쿼리하여 동일한 값이 존재하는지 확인합니다. , 시스템에는 다음을 포함하여 일반적으로 사용되는 몇 가지 일반 확인 규칙이 내장되어 있습니다. 필수 필드는
통화, 숫자여야 합니다.
확인시간 : (선택)
02.Model:: MODEL_UPDATE 또는 2 데이터 편집 시 확인
03.Model:: MODEL_BOTH 또는 3 모든 경우 확인(기본값) )
5. 공식 예:
protected $_validate =<span> array( array(</span>'verify','require','验证码必须!'), <span>//</span><span>默认情况下用正则进行验证 </span> array(name,'','帐号名称已经存在!',0,’unique’,1), <span>//</span><span> 在新增的时候验证name字段是否唯一 </span> array('value',array(1,2,3),'值的范围不正确!',2,’<span>in</span>’), <span>//</span><span> 当值不为空的时候判断是否在一个范围内 </span> array('repassword','password','确认密码不正确',0,’confirm’), <span>//</span><span> 验证确认密码是否和密码一致 </span> array('password','checkPwd','密码格式不正确',0,’<span>function</span>’)<span>//</span><span> 自定义函数验证密码格式 </span> );