说到TP的三大自动,用过的才晓得多方便。举个例子:当你注册时候,是不是要去查询数据库判断用户名是不是存在?是不是要去判断用户注册时候的两次密码是不是一样?

首先我们要清楚的知道,多看文档的话会让你更了解这个框架。
首先我们下载TP的框架,新建一个项目。然后创建一个 tocore 的数据库,里面只有一张表,SQL是:
-- phpMyAdmin SQL Dump -- version 4.4.14 -- http://www.phpmyadmin.net -- -- Host: 127.0.0.1 -- Generation Time: 2015-09-17 06:39:27 -- 服务器版本: 5.6.26 -- PHP Version: 5.6.12 SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO"; SET time_zone = "+00:00"; -- -- Database: `tpcore` -- -- -------------------------------------------------------- -- -- 表的结构 `one` -- CREATE TABLE IF NOT EXISTS `one` ( `id` int(11) NOT NULL, `username` varchar(32) NOT NULL, `password` varchar(32) NOT NULL, `addtime` int(11) NOT NULL ) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8; -- Indexes for dumped tables -- -- -- Indexes for table `one` -- ALTER TABLE `one` ADD PRIMARY KEY (`id`), ADD UNIQUE KEY `username` (`username`); -- -- AUTO_INCREMENT for dumped tables -- -- -- AUTO_INCREMENT for table `one` -- ALTER TABLE `one` MODIFY `id` int(11) NOT NULL AUTO_INCREMENT,AUTO_INCREMENT=1;
然后修改数据库配置文件,之后在首页改成一个简单的form表单
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
</head>
<body>
<form action="{:U('Index/add')}" method="post">
用户名:
<input name="name" type="text" />
密码:
<input name="password1" type="text" />
确认密码:
<input name="password2" type="text" />
<input type="submit" value="注册" />
</form>
</body>
</html>然后控制器的话 添加一个add方法:
public function add(){
if(!IS_POST){
$this->error("非法访问");
}
$one = D("One");
dump($one->reg());
}
}还有就是要写一个Model:
<?php
namespace Home\Model;
use Think\Model;
class OneModel extends Model{
// 批量验证
protected $patchValidate = true;
// 字段映射
protected $_map = array(
"name"=>"username", // 表单值 数据库字段
"password1"=>"password",
);
//字段验证
protected $_validate = array(
array('username','','帐号名称已经存在!',0,'unique',1),// 字段 值/函数名 提示 验证条件 附加规则 触发时间
array("password","password2","两次输入的密码不一致",0,"confirm"),
array("addtime","time",1,"function"),
);
//自动处理
//protected $_auto = array(
// array('addtime','time',1,'function'),
//);
public function reg(){
if (!$this->create()){
return $this->getError();
}else{
return $this->add();
}
}
}在我们提交数据的时候会进行判断,这里我是直接打印出来的,可以根据需要去修改。注意 Model中的方法和M连贯操作的方法名不能一样
当我们输入 admin admin admi 的时候提示:

当我们输入 admin admin admin 的时候提示:

当我们再次输入 admin admin admi 的时候提示:

然后我们输入 admin admin admin 的时候

这样的处理方式,避免了我们需要很多If判断,合理的利用框架自带的方法,可以节约很多时间的。
上一篇: 美化ThinkPHP模板...