zoukankan      html  css  js  c++  java
  • ThinkPhP中model自动验证 $_validate $_auto

     1 <?php
     2     class UserModel extends RelationModel{
     3 
     4 
     5         /**自动验证**/
     6         protected $_validate  =  array(  
     7             /**array([验证字段],[验证规则],[错误提示],(验证条件(默认为存在字段就验证)),(附加规则),(验证时间))**/
     8             array('username','','该用户名已经存在!',1,'unique'),
     9                array('password','5,12','密码过短,请重新输入!',1,'length'),// 自定义函数验证密码格式  
    10                array('repassword','password','两次密码不一致,请确认输入!',1,'confirm'),
    11         ); 
    12 
    13         /*这边附加规则中的'callback' 与 'function' 必须分清楚,'callback是用户自定义的函数',
    14             'function'是系统自带的函数
    15         */
    16         /**验证条件**/
    17         /**
    18          * Model::EXISTS_VALIDATE 或者0 存在字段就验证(默认)
    19          * Model::MUST_VALIDATE 或者1 必须验证
    20          * Model::VALUE_VALIDATE或者2 值不为空的时候验证
    21          */
    22         /**验证时间**/
    23            /**
    24             * Model::MODEL_INSERT或者1新增数据时候验证
    25          * Model::MODEL_UPDATE或者2编辑数据时候验证
    26          * Model::MODEL_BOTH或者3全部情况下验证(默认)
    27          * 这里的验证时间需要注意,并非只有这三种情况,你可以根据业务需要增加其他的验证时间。
    28             */
    29 
    30         /**自动增加**/
    31         protected $_auto = array ( 
    32             /**array([增加字段],[增加函数],[增加条件],[附加规则])**/
    33             array('addtime','time',3,'function'),     
    34         );
    35 
    36         /**后台检查密码长度**/
    37         protected function checkPwd($password){
    38             if(strlen($password) < 5){
    39                 return false;
    40             }else{
    41                 return true; 
    42             }
    43         }
    44 
    45     }
    46 
    47 ?>

    动态绑定模式:

     1 <?php
     2     class UserAction extends Action{
     3 
     4         public function user(){
     5             $this->display();
     6         }
     7 
     8         public function index(){
     9             $user = D('User');
    10             $validate  =  array(  
    11                 /**array([验证字段],[验证规则],[错误提示],(验证条件(默认为存在字段就验证)),(附加规则),(验证时间))**/
    12                 array('username','','该用户名已经存在!',1,'unique'),
    13                    array('password','5,12','密码过短,请重新输入!',1,'length'),// 自定义函数验证密码格式  
    14                    array('repassword','password','两次密码不一致,请确认输入!',1,'confirm'),
    15             ); 
    16             $auto = array(
    17                 array('addtime','time',3,'function'),    
    18             );
    19             // model模型中的内置函数
    20             // $user->setProperty('_validate',$validate);
    21             // $user->setProperty('_auto',$auto);
    22             $user->validate($validata)->auto($auto);
    23             if($user->create()){
    24                 if($user->add()){
    25                     $this->success('注册成功');
    26                 }else{
    27                     $this->error('注册失败');
    28                 }
    29             }else{
    30                 $this->error($user->getError());
    31             }
    32         }
    33     }
    34 ?>
  • 相关阅读:
    Nginx配置文件nginx.conf中文详解
    tomcat nginx默许的post大小限制
    Unrecognized Windows Sockets error: 0: JVM_Bind 异常解决办法
    服务器被上传非法文件,查找命令
    jQuery Event.which 属性详解
    jQuery中$.fn的用法示例介绍
    Spring4 学习教程
    注意Hibernate4在开发当中的一些改变
    ubuntu PATH 出错修复
    SpringMVC与SiteMesh
  • 原文地址:https://www.cnblogs.com/zafuacm/p/4046692.html
Copyright © 2011-2022 走看看