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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM