model中的自动验证 $_validate $_auto
普通模式:
<?php class UserModel extends RelationModel{ /**自动验证**/ protected $_validate = array( /**array([验证字段],[验证规则],[错误提示],(验证条件(默认为存在字段就验证)),(附加规则),(验证时间))**/ array('username','','该用户名已经存在!',1,'unique'), array('password','5,12','密码过短,请重新输入!',1,'length'),// 自定义函数验证密码格式 array('repassword','password','两次密码不一致,请确认输入!',1,'confirm'), ); /*这边附加规则中的'callback' 与 'function' 必须分清楚,'callback是用户自定义的函数', 'function'是系统自带的函数 */ /**验证条件**/ /** * Model::EXISTS_VALIDATE 或者0 存在字段就验证(默认) * Model::MUST_VALIDATE 或者1 必须验证 * Model::VALUE_VALIDATE或者2 值不为空的时候验证 */ /**验证时间**/ /** * Model::MODEL_INSERT或者1新增数据时候验证 * Model::MODEL_UPDATE或者2编辑数据时候验证 * Model::MODEL_BOTH或者3全部情况下验证(默认) * 这里的验证时间需要注意,并非只有这三种情况,你可以根据业务需要增加其他的验证时间。 */ /**自动增加**/ protected $_auto = array ( /**array([增加字段],[增加函数],[增加条件],[附加规则])**/ array('addtime','time',3,'function'), ); /**后台检查密码长度**/ protected function checkPwd($password){ if(strlen($password) < 5){ return false; }else{ return true; } } } ?>
动态绑定模式:
<?php class UserAction extends Action{ public function user(){ $this->display(); } public function index(){ $user = D('User'); $validate = array( /**array([验证字段],[验证规则],[错误提示],(验证条件(默认为存在字段就验证)),(附加规则),(验证时间))**/ array('username','','该用户名已经存在!',1,'unique'), array('password','5,12','密码过短,请重新输入!',1,'length'),// 自定义函数验证密码格式 array('repassword','password','两次密码不一致,请确认输入!',1,'confirm'), ); $auto = array( array('addtime','time',3,'function'), ); // model模型中的内置函数 // $user->setProperty('_validate',$validate); // $user->setProperty('_auto',$auto); $user->validate($validata)->auto($auto); if($user->create()){ if($user->add()){ $this->success('注册成功'); }else{ $this->error('注册失败'); } }else{ $this->error($user->getError()); } } } ?>