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







目录
相关文章
|
2月前
|
开发者 iOS开发
【教程】修改应用程序开发者名称的步骤
【教程】修改应用程序开发者名称的步骤
|
15天前
|
前端开发 JavaScript Java
文本----简单编写文章的方法(中),后端接口的编写,自己编写好页面就上传到自己的服务器上,使用富文本编辑器进行编辑,想写好一个项目,先分析一下需求,再理一下实现思路,再搞几层,配好参数校验,lomb
文本----简单编写文章的方法(中),后端接口的编写,自己编写好页面就上传到自己的服务器上,使用富文本编辑器进行编辑,想写好一个项目,先分析一下需求,再理一下实现思路,再搞几层,配好参数校验,lomb
|
13天前
|
SQL 前端开发 Java
若依修改03----利用若依代码生成器,生成课程管理的前后端代码,课程的条件搜索接口,一旦数据表创建好了,直接交给若依代码的生成器就好了,配置代码生成信息,包含基本信息,字段信息,生成信息。字段信息决
若依修改03----利用若依代码生成器,生成课程管理的前后端代码,课程的条件搜索接口,一旦数据表创建好了,直接交给若依代码的生成器就好了,配置代码生成信息,包含基本信息,字段信息,生成信息。字段信息决
|
13天前
|
前端开发 NoSQL JavaScript
若依修改---重新部署项目注意事项,新文件初始化需要修改的地方,打包后的文件很难进行修改,如果想要不断修改项目,注意保存原项目,才可以不断修改,前端:在Vue.config.js文件中修改target
若依修改---重新部署项目注意事项,新文件初始化需要修改的地方,打包后的文件很难进行修改,如果想要不断修改项目,注意保存原项目,才可以不断修改,前端:在Vue.config.js文件中修改target
|
9月前
|
数据安全/隐私保护
fastadmin中写接口是时Validate规则验证自定义如何用
fastadmin中写接口是时Validate规则验证自定义如何用
104 0
|
2月前
|
Oracle Java 关系型数据库
Generator【SpringBoot集成】代码生成+knife4j接口文档(2种模板设置、逻辑删除、字段填充 含代码粘贴可用)保姆级教程(注意事项+建表SQL+代码生成类封装+测试类)
Generator【SpringBoot集成】代码生成+knife4j接口文档(2种模板设置、逻辑删除、字段填充 含代码粘贴可用)保姆级教程(注意事项+建表SQL+代码生成类封装+测试类)
47 0
|
9月前
|
Java 数据库 开发者
自动配置要点解读
自动配置要点解读
|
11月前
|
前端开发 Java Spring
[BUG]自定义登录引发的配置加载问题
[BUG]自定义登录引发的配置加载问题
65 0
|
PHP 开发工具 数据库
Yii2 修改框架入口增加配置适应开发生产环境
Yii2 修改框架入口增加配置适应开发生产环境
103 0
Yii2 修改框架入口增加配置适应开发生产环境
|
PHP
【laravel项目】@16 修改后台分类
【laravel项目】@16 修改后台分类
94 0
【laravel项目】@16 修改后台分类

热门文章

最新文章