首页 > 代码库 > ThinkPhP中model自动验证 $_validate $_auto

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 ?>

 

ThinkPhP中model自动验证 $_validate $_auto