1.CURD介绍:
CURD一般指创建(create),更新(update),读取(read),删除(delete)。
ThinkPHP使用add、save、select和delete方法表示模型的CURD操作。
2.创建数据
CURD的Create操作通常会通过表单来提交数据,我们在Home模块的View/Form
目录下面创建一个add.html 模板文件:
<form method="post" action="__URL__/insert">
标题:<input type="text"name="title"><br/>
内容:<textarea name="content" rows="5" cols="45"></textarea><br/>
<input type="submit" value="提交">
</form>
表单中定义了提交地址是到Form控制器的insert操作,为了处理表单提交数据,我们需
要在FormController类中添加insert操作方法:
<?php
namespace Home\Controller;
use Think\Controller;
class FormController extends Controller{
public function insert(){
$Form=D('Form');
if($Form->create()){
$result=$Form->add();//add方法的返回值就是该主键的值。不是自增主键的话,返回值表示插入
数据的个数。如果返回false则表示写入出错。
if($result) {
$this->success('数据添加成功!');
}else{
$this->error('数据添加错误!');
}
}else{
$this->error($Form->getError());
}
}
}
3.读取数据
在Formcontroller中加一个read方法:
public function read($id=0){
$Form=M('Form');
//读取数据
$data=$Form->find($id);//find返回的是一维数组
if($data) {
$this->assign('data',$data);// 模板变量赋值
}else{
$this->error('数据错误');
}
$this->display();
}
在模板文件中写入:
<table>
<tr>
<td>id:</td>
<td>{$data.id}</td>
</tr>
<tr>
<td>标题:</td>
<td>{$data.title}</td>
</tr>
<tr>
<td>内容:</td>
<td>{$data.content}</td>
</tr>
</table>
完成后,我们就可以访问http://localhost/app/index.php/home/Form/read/id/1,测试
如果你只需要查询某个字段的值,还可以使用getField方法,例如:
$Form=M("Form");
//获取标题
$title=$Form->where('id=3')->getField('title');
4.更新数据
在模板文件中增加edit.html,来更新数据:
<form method="post" action="__URL__/update">
标题:<input type="text"name="title">{$vo.title}<br/>
内容:<textarea name="content" rows="5" cols="45">{$vo.content}</textarea><br/>
<input type="hidden" name="id" value="{$vo.id}">
</form>
在FormController类添加两个操作方法:
public function edit($id=0){
$Form=M('Form');
$this->assign('vo',$Form->find($id));
$this->display();
}
public function update(){
$Form=D('Form');
if($Form->create()) {
$resul=$Form->save();
if($result){
$this->success('操作成功!');
}else{
$this->error('写入错误!');
}
}else{
$this->error($Form->getError());
}
}
注意:数据的更新操作在ThinkPHP使用save方法,可以看到,我们同样可以使用create方法创建表单提交的数据,而save方法则会自动把当前的数据对象更新到数据库,而更新的条件其实就是表的主键。save方法会自动识别数据对象中的主键字段,并作为更新条件。
5.删除数据
删除数据只需要调用delete方法,例如:
$Form=M('Form');
$Form->delete(5);
表示删除主键为5的数据,delete方法可以删除单个数据,也可以删除多个数据,这取决于删除条件。