原文: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号

}

}

?>

ThinkPHP 自动创建数据、自动验证、自动完成详细例子介绍(十九)的更多相关文章

  1. thinkphp自动创建数据对象分析

    thinkphp有一个自动创建数据对象的create方法,核心代码如下 public function create($data='',$type='') { // 如果没有传值默认取POST数据 i ...

  2. A.CTable 自动创建数据表

    1.添加依赖 <!-- A.CTable 自动创建数据表 --> <dependency> <groupId>com.gitee.sunchenbin.mybati ...

  3. SpringBoot+Mybatis 自动创建数据表(适用mysql)

    Mybatis用了快两年了,在我手上的发展史大概是这样的 第一个阶段 利用Mybatis-Generator自动生成实体类.DAO接口和Mapping映射文件.那时候觉得这个特别好用,大概的过程是这样 ...

  4. springboot项目启动-自动创建数据表

    很多时候,我们部署一个项目的时候,需要创建大量的数据表.例如mysql,一般的方法就是通过source命令完成数据表的移植,如:source /root/test.sql.如果我们需要一个项目启动后, ...

  5. java使用jxl,自动导出数据excle,quartz自动发送邮件

    =============JAVA后台代码===================== package com.qgc.service.autoSendMsg.AutoSendMsg import ja ...

  6. 自动创建字符设备,不需mknod

    自动创建设备文件 1.自动创建设备文件的流程 字符设备驱动模块 -->创建一个设备驱动class--->创建属于class的device--->调用mdev工具(自动完成)--> ...

  7. hibernate中.hbm.xml和注解方式自动生成数据表的简单实例(由新手小白编写,仅适用新手小白)

    绝逼新手小白,so 请大神指点! 如果真的错的太多,错的太离谱,错的误导了其他小伙伴,还望大神请勿喷,大神请担待,大神请高抬贵嘴......谢谢. 好了,正题 刚接触ssh,今天在搞使用.hbm.xm ...

  8. Spring学习笔记:自动创建Proxy

    为什么需要自动创建Proxy 手动为所有需要代理的类用ProxyFactoryBean创建代理Proxy需要大量的配置. 这样如果需要代理的类很多,配置就很繁琐,而且也不便于xml配置的维护. 因此S ...

  9. bat自动创建快捷方式并更换图标

    1 :: 此脚本主要的作用创建1.自动创建快捷方式:2.自动更换快捷方式图标 2 @echo off 3 >nul 2>&1 "%SYSTEMROOT%\system32 ...

随机推荐

  1. Swift - 给图片添加滤镜效果(棕褐色老照片滤镜,黑白滤镜)

    Core Image是一个强大的滤镜处理框架.它除了可以直接给图片添加各种内置滤镜,还能精确地修改鲜艳程度, 色泽, 曝光等,下面通过两个样例演示如何给UIImage添加滤镜. 1,棕褐色滤镜  -  ...

  2. 区间dp模型之括号匹配打印路径 poj(1141)

    题目链接:Brackets Sequence 题目描写叙述:给出一串由'(')'' [ ' ' ] '组成的串,让你输出加入最少括号之后使得括号匹配的串. 分析:是区间dp的经典模型括号匹配.解说:h ...

  3. SQL Server 存储过程、触发器、游标

    存储过程 1.存储过程是事先编好的.存储在数据库中的程序,这些程序用来完成对数据库的指定操作. 2.系统存储过程: SQL Server本身提供了一些存储过程,用于管理有关数据库和用户的信息. 用户存 ...

  4. virtualbox从.VDI备份文件新建/恢复虚拟机(包括恢复各个备份节点)

    一.前言: ubuntu上的virtualbox中的虚拟机如果关机不当会导致整个虚拟机坏掉,而且采用各种debug方式都难以让它重新启动.这时你只能用之前备份的各个VDI文件来恢复系统了.还有另一种场 ...

  5. sudo service memcached start

    我安装后memcached后,并使用 ? 1 sudo service memcached start

  6. js实现相册翻页,滚动,切换,轮播功能

    我们在做web开发的时候,前台的效果要求是很高的,因为对于不懂程序的用户来说,前台的视觉冲击,无疑是对我们产品的第一印象. 在完成web图片各种功能上,很多框架有很绚丽的效果,但今天我们来看看用原生的 ...

  7. 转:python idle 清屏问题的解决

    http://www.cnblogs.com/maybego/p/3234055.html python idle 清屏问题的解决 在学习和使用python的过程中,少不了要与python idle打 ...

  8. Android 百度地图开发(二)--- 定位功能之MyLocationOverlay,PopupOverlay的使用

    转载请注明出处http://blog.csdn.net/xiaanming/article/details/11380619 这一篇文章主要讲解的是百度地图的定位功能,然后还有MyLocationOv ...

  9. 初识Dubbo 系列之4-Dubbo 依赖

    依赖 必需依赖 JDK1.5+ 理论上Dubbo能够仅仅依赖JDK,不依赖于不论什么三方库执行,仅仅需配置使用JDK相关实现策略. 缺省依赖 通过mvn dependency:tree > de ...

  10. 人人网javascript面试题

    JavaScript面试题要求:以下题目必须从一至四题中,选出三道题,使用原生代码实现,不可使用任何框架,第五题为选作题. 一.  在页面的固定区域内实现图片的展示       <ignore_ ...