tp论坛 第三节 板块模板的建立和完善(二)

1:比较简单,并没有涉及到诸如版主啦,副版主啦,只是一个简单的id和一个名称

2:不支持分级,即该模块下有子模块是不支持的,因为该类只有两个字段,其实还可以再加一个字段parent,表示其父版本,即parent的外键就是它的id

什么是外键???

学生表(学号,姓名,性别,班级) 

其中每个学生的学号是唯一的,学号就是一个主键 
课程表(课程编号,课程名,学分) 
其中课程编号是唯一的,课程编号就是一个主键 
成绩表(学号,课程号,成绩) 
成绩表中单一一个属性无法唯一标识一条记录,学号和课程号的组合才可以唯一标识一条记录,所以 学号和课程号的属性组是一个主键 

成绩表中的学号不是成绩表的主键,但它和学生表中的学号相对应,并且学生表中的学号是学生表的主键,则称成绩表中的学号是学生表的外键 

**************思路分析*************

1:只要功能确定了,我们就可以动手写模板了,然后从数据库中取出数据,然后assign一下,再display一下,就可以了

2:这里功能比较简单,步骤就更加简单,因此我选择先做模板,如果工作量比较大,可能需要齐头并进,这时就体现出管理者的能力了

3:每次我们要想创建一个新的模板的时候,我们最先想到的就是在controller下面新建一个类,这里我们先新建一个BoardController.class.php

4:然后就是他的模板,我们在application的home下view下新建一个board文件夹

**********添加测试数据*************

1:由于我们的board中什么也没有,我们很多工作无法开展,于是我们可以写一个程序来批量导入数据。

2:在boardController类中写一个xinadd(),

public function xinadd(){
$m=M('board');
$data=array();
$data[]=array('name'=>'php');
$data[]=array('name'=>'python');
$data[]=array('name'=>'java');
$data[]=array('name'=>'c');
$data[]=array('name'=>'c++');
$data[]=array('name'=>'perl');
$data[]=array('name'=>'ruby');
$data[]=array('name'=>'html');
$m->addAll($data);
echo '导入完毕';
}

***********显示模块列表********

在BoardController 中添加一个index方法,

public function index(){
$m=M('board');
$msg=$m->where()->select();
$this->assign('board',$msg);
$this->display();

}

然后就是我们在视图里面的index.html

<h2>yanran简易的BBS</h2>
<h3>给您更多的选择</h3>
<table border=1>
<foreach name="board" item="vo">
<tr><td width=200> 第{$key}个: </td><td width=300><a href="__CONTROLLER__/detail/id/{$vo.id}">{$vo.name}</td></tr>
</foreach>

************单个模块的展示****************

1:下面我们就可以把精力投入到但各板块的展示上,我们接下来需要创建一个detail方法,而且他接受一个参数id

2:在做之前,我们先向post表中导入数据,

http://www.tuicool.com/articles/M7z6Bf

public function xinpost(){
/*
$m=M('post');
$data=array();
$data[]=array('board'=>1,'text'=>'yanran私人空间,欢迎来访','author'=>'hao');
$data[]=array('board'=>1,'text'=>'你好,欢迎来访','author'=>'hao');
$data[]=array('board'=>1,'text'=>'欢迎回访,欢迎来访','author'=>'hao');
$data[]=array('board'=>1,'text'=>'谢谢你,欢迎来访','author'=>'hao');
$data[]=array('board'=>1,'text'=>'亲,欢迎来访','author'=>'hao');
$data[]=array('board'=>1,'text'=>'哦,欢迎来访','author'=>'hao');
$data[]=array('board'=>1,'text'=>'来啦,欢迎来访','author'=>'hao');
$m->addALL($data);
echo '导入完毕';
*/
}

3:接下来编写detail函数

public function detail($id){
$m=M('board');
//获取变量的整数值
$id=intval($id);
$board=$m->where("id=$id")->select();
$this->assign('board',$board[0]);
$n=M('post');
$post=$n->where("board=$id")->select();
$this->assign("post",$post);
$this->display();
}

4:detail.html

<h2>简易的BBS</h2>
<h3>{$board.name}<h3>
<table border=1>
<foreach name='post' item='vo'>
<tr>
<td>第{$key}贴</td>
<td><a href="#">{$vo.text}</a></td>
<td>楼主:{$vo.author}</td>
</tr>
</foreach>
</table>

原文地址:https://www.cnblogs.com/yanran/p/4928133.html