ThinkPHP 自动创建数据、自动验证、自动完成详细例子介绍(十九)

简介: 原文: ThinkPHP 自动创建数据、自动验证、自动完成详细例子介绍(十九) 1:自动创建数据 //$name=$_POST['name'];//$password=$_POST['password'];  ---这个注册页面传过来的POST值 ...
原文: ThinkPHP 自动创建数据、自动验证、自动完成详细例子介绍(十九)


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







目录
相关文章
|
1月前
|
开发者 iOS开发
【教程】修改应用程序开发者名称的步骤
【教程】修改应用程序开发者名称的步骤
|
14天前
|
人工智能 Serverless 对象存储
让你的文档从静态展示到一键部署可操作验证
好的文档应当超越文字的界限,成为知识传递和技能培养的桥梁。阿里云函数计算让我们朝着这一目标迈出了重要一步。我们将文档从传统的静态页面升级为一个动态的、互动性强的工具,用户可以通过一键部署直接在函数计算平台验证文档内容。
148 0
|
6月前
|
数据安全/隐私保护
fastadmin中写接口是时Validate规则验证自定义如何用
fastadmin中写接口是时Validate规则验证自定义如何用
|
4月前
|
Oracle Java 关系型数据库
Generator【SpringBoot集成】代码生成+knife4j接口文档(2种模板设置、逻辑删除、字段填充 含代码粘贴可用)保姆级教程(注意事项+建表SQL+代码生成类封装+测试类)
Generator【SpringBoot集成】代码生成+knife4j接口文档(2种模板设置、逻辑删除、字段填充 含代码粘贴可用)保姆级教程(注意事项+建表SQL+代码生成类封装+测试类)
28 0
|
6月前
|
Java 数据库 开发者
自动配置要点解读
自动配置要点解读
|
存储 关系型数据库 MySQL
WordPress 核心中未包含的 WordPress 网站组件
WordPress 核心中未包含的 WordPress 网站组件 之前 WordPress 核心文件北京六翼的开发工程师已经介绍过了,下面让我们来看看 WordPress 核心文件中不包含的内容。 WordPress 数据库– WordPress 数据库存储了您的 WordPress 网站的大部分内容。
WordPress 核心中未包含的 WordPress 网站组件
|
数据安全/隐私保护
抽离配置,几分钟快速创建和修改表单
抽离配置,几分钟快速创建和修改表单
143 0
|
Java 数据库连接 数据库
【SSM框架】测试 修改.删除.查询功能
1.创建sqlSession工具类 2.测试修改功能 3.测试删除功能 4.测试查询功能
【SSM框架】测试 修改.删除.查询功能
|
IDE 开发工具 C++
如何配置ofxFaceTracker的AdvancedExample例子【更新】
如何配置ofxFaceTracker的AdvancedExample例子【更新】
99 0
如何配置ofxFaceTracker的AdvancedExample例子【更新】
如何使用配置的方式修改SAP C4C UI的字段标签,以及背后的工作原理
I was asked by one partner that it is expected to adapt the label of “New” button into “Add”, and change the text of first menu item from “Add” to “From Contact”.
如何使用配置的方式修改SAP C4C UI的字段标签,以及背后的工作原理