• 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>

  • 相关阅读:
    [LeetCode]题解(python):041-First Missing Positive
    [LeetCode]题解(python):037-Sudoku Solver
    [LeetCode]题解(python):040-Combination Sum II
    [LeetCode]题解(python):039-Combination Sum
    [LeetCode]题解(python):038-Count and Say
    [LeetCode]题解(python):036-Valid Sudoku
    [LeetCode]题解(python):035-Search Insert Position
    [LeetCode]题解(python):034-Search for a Range
    [LeetCode]题解(python):033-Search in Rotated Sorted Array
    计算最长英语单词链
  • 原文地址:https://www.cnblogs.com/yanran/p/4928133.html
Copyright © 2020-2023  润新知