读取数据
2016-01-22 14:05
274 查看
读取数据
当我们成功写入数据后,就可以进行数据读取操作了。在前面一篇中,我们已经知道可以用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妇科品牌专题 |
内容: | 襄阳看妇科医院在哪里。 |
相关文章推荐
- java 并发插入数据到oracle
- 1797: [Ahoi2009]Mincut 最小割 最小割+tarjan
- 构造与析构函数
- 动态规划--学习笔记
- 高通平台开机LOGO修改LK(bootloader)下实现
- C# 中 重载,重写,隐藏的区别
- 适配器模式与外观模式
- 【tree】--分销商级联删除--170 drp
- Android 时间转换
- C函数之memcpy()函数用法
- SVG pointer-events属性
- DDoS的攻击方式及防御手段
- java基础篇--01<基础>
- input 去除叉叉和小眼睛
- git shell 命令
- Mysql支持的数据类型
- C++:抽象类(圆与正方形)
- 漂移板技术路线图
- HTML5新特性
- float学习笔记