本文共 1751 字,大约阅读时间需要 5 分钟。
1:自动创建数据
//$name=$_POST['name']; //$password=$_POST['password']; ---这个注册页面传过来的POST值 下面用了自动穿件create方法就可以不用这个,会行动绑定 $user =M('User'); $User->create(); //会将传过来的$_POST数据对应到数据库的字段 $user->add(); //就可以直接写入 2:自动验证 (只需要在Model类里面定义$_validate属性)使用步骤(注册验证User表)
一:创建User表自定义的Mode --->Home\Lib\Model\UserModel.class.php <?php //注意:code username password....都是你表单里面的name值,要对应 //表单里面字段名字定义的 class UserModel extends Model{ protected $_validate=array( array('code','require','验证码必须填写!'), array('code','checkCode','验证码错误!',0,'callback',1), //使用回调函数checkCode array('username','require','用户必须填写!'), array('username','','用户已经存在',0,'unique',1), array('username','/^\w{6,}$/','用户名必须6个字母以上',0,'regex',1), array('repassword','password','确认密码不正确',0,'confirm'), ); protected function checkCode($code){ if(md5($code)!=$_SESSION['code']){ return false; }else{ return true; } } } ?> //控制请值对应的注册方法 <?php class RegisterAction extends Action{ public function doReg(){ $user=D('User'); //大D方法是会先去找你自定义的Mode,(使用上面创建的UserModel.class.php类) //如果有有自定义的用自定义的,否则用原始的 D等同M M!=D if(!$user->create()){//会自动去验证 返回一个布尔类型,成功则自动创建数据 $this->error($user->getError());//获取具体错误信息 } $lastId=$user->add(); if($lastId){ $this->redirect('Index/index'); }else{ $this->error('用户注册失败'); } } } ?> 3:自动完成 (做留言的例子) 步骤: 一:创建Message表自定义的Mode --->Home\Lib\Model\MessageModel.class.php <?php class MessageModel extends RelationModel{ protected $_auto=array( array('time','time',1,'function'), array('uid','getId',1,'callback') ); protected function getId(){ return $_SESSION['id']; } } ?> 二:控制器中 <?php class MessageAction extends Action{ public function doLiuyan(){ $message=D('Message'); //$message->time=time(); //$message->uid=$_SESSION['id']; 这2个值将在自定义MessageModel中自动填充完成 $message->add(); //返回值是新增的id号 } } ?>
转载地址:http://uyhwm.baihongyu.com/