读取数据
当我们成功写入数据后,就可以进行数据读取操作了。这里我们来通过find方法获取一个单一数据,定义read操作方法如下:
1. public function read($id=0){
2. $Form = M('Form');
3. // 读取数据
4. $data = $Form->find($id);
5. if($data) {
6. $this->data = $data;// 模板变量赋值
7. }else{
8. $this->error('数据错误');
9. }
10. $this->display();
11. }
read操作方法有一个参数$id,表示我们可以接受URL里面的id变量(后面我们会在变量章节详细描述。这里之所以用M方法而没有用D方法,是因为find方法是基础模型类Model中的方法,所以没有必要浪费开销去实例化FormModel类(即使已经定义了FormModel类)。我们通常采用find方法读取某个数据,这里使用了AR模式来操作,所以没有传入查询条件,find($id) 表示读取主键为$id值的数据,find方法的返回值是一个如下格式的数组:
1. array(
2. 'id' => 5,
3. 'title' => '测试标题',
4. 'content' => '测试内容',
5. 'status' => 1,
6. )
然后我们可以在模板中输出数据,添加一个read模板文件,
1. <table>
2. <tr>
3. <td>id:</td>
4. <td>{$data.id}</td>
5. </tr>
6. <tr>
7. <td>标题:</td>
8. <td>{$data.title}</td>
9. </tr>
10. <tr>
11. <td>内容:</td>
12. <td>{$data.content}</td>
13. </tr>
14. </table>
完成后,我们就可以访问
1. http://localhost/app/index.php/Form/read/id/1
来查看了。
在实际中public function read($id=0){}有时会获取不到$id的值,这是因为传递过来的id值没有变量保存,方法里面操作的$id还是一开始设置的$id=0,
遇到这种情况可以在方法里声明$id = $_GET[‘id’]; 或 将public function read($id=0){}的参数去掉,即public function read(){}