读取数据
读取数据
当我们成功写入数据后,就可以进行数据读取操作了。在前面一篇中,我们已经知道可以用select方法获取数据集,这里我们来通过find方法获取一个单一数据,定义read操作方法如下:
public function read($id=0){
$Form = M('Form');
// 读取数据
$data = $Form->find($id);
if($data) {
$this->assign('data',$data);// 模板变量赋值
}else{
$this->error('数据错误');
}
$this->display();
}
read操作方法有一个参数$id,表示我们可以接受URL里面的id变量(后面我们会在变量章节详细描述。这里之所以用M方法而没有用D方法,是因为find方法是基础模型类Model中的方法,所以没有必要浪费开销去实例化FormModel类(即使已经定义了FormModel类)。我们通常采用find方法读取某个数据,这里使用了AR模式来操作,所以没有传入查询条件,find($id) 表示读取主键为$id值的数据。
然后我们可以在模板中输出数据,添加一个read模板文件,
<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
来查看了。
*****************************************************************************
1--Home/Controller/FormController.class.php
<?php
namespace Home\Controller;
use Think\Controller;
class FormController extends Controller{
public function insert(){
$Form=D('Form');
if($Form->create()){
$result= $Form->add();
if($result){
$this->success('数据添加成功!');
}else{
$this->error('数据添加错误!');
}
}else{
$this->error($Form->getError());
}
}
public function read($id=0){
$Form=M('Form');
$data=$Form->find($id);
if($data){
$this->assign('data',$data);
}else{
$this->error('数据错误');
}
$this->display();
}
}
2--Home/Model/FormModel.class.php
<?php
namespace Home\Model;
use Think\Model;
class FormModel extends Model {
// 定义自动验证
protected $_validate = array(
array('title','require','标题必须'),
);
// 定义自动完成
protected $_auto = array(
array('create_time','time',1,'function'),
);
}
3--Home/View/Form/read.html
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>读取数据</title>
</head>
<body>
<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>
</body>
</html>
****************************
输出结果:
id: | 2 |
标题: | 2016妇科品牌专题 |
内容: | 襄阳看妇科医院在哪里。 |