博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
ThinkPHP 自动创建数据、自动验证、自动完成详细例子介绍(十九)
阅读量:7166 次
发布时间:2019-06-29

本文共 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/

你可能感兴趣的文章
生活网址
查看>>
Xen
查看>>
解析Linux网络分析的三大利器(ZT)
查看>>
(chrome)CreQQ:chrome浏览器QQ插件|在老板面前轻松聊Q
查看>>
MDT 2012 批量部署(三)——安装
查看>>
File native method
查看>>
JAVA中的enum
查看>>
物联网平台构架系列 (一):Amazon, Microsoft, IBM IoT 解决方案导论 之 概览
查看>>
转载和积累系列 - Page cache和Buffer cache
查看>>
Java中如何利用Selenium获取元素分析网页内容
查看>>
ssh不能远程登录问题解决 & hosts.allow/howts.deny书写规则
查看>>
【Spring】HttpMessageConverter的作用及替换
查看>>
kvm sr-iov 热插拔 简介
查看>>
hibernate inverse作用
查看>>
cv::Mat 结构
查看>>
Centos6.9 安装docker与docker-compose
查看>>
Aug 09 使用AVAudioPlayer轻松搞定音频播放
查看>>
VC++中使用ADO连接数据库
查看>>
创建多个电脑账户需要赋予不用的权限方法
查看>>
改变单选按钮radio圆点的颜色
查看>>