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