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

 

posted on 2014-10-23 20:07  张狂不年轻°  阅读(3497)  评论(0编辑  收藏  举报