从今天起松林开始给大家讲解Thinkphp新闻系统,今天主要讲解如何列出Thinkphp列表,首先这篇文章的重点并不多,重要的是大家要了解一下他的运行流程,好了,开始讲课。

如果要用Thinkphp讲解如何写新闻系统,当然需要Thinkphp的框架包。如果没有框架包,那去官网下载一个Thinkphp框架包。下载完之后解压在环境的根目录,如果不会安装的话,回头看看我以前的文章Thinkphp的安装。安装完以后,那我们需要什么啊? 当然我们需要一个新闻的列表页面。

安装完Thinkphp的框架包以后会自动生成一些系统文件夹和文件,默认在安装文件夹下的lib/Action/下会默认生成IndexAction.class.php  打开这个文件,里面的内容大致是

<?php
// 本文档自动生成,仅供测试运行
class IndexAction extends Action
{
/**
+----------------------------------------------------------
* 默认操作
+----------------------------------------------------------
*/
public function index()
{
$this->display(THINK_PATH.'/Tpl/Autoindex/hello.html');
}

/**
+----------------------------------------------------------
* 探针模式
+----------------------------------------------------------
*/
public function checkEnv()
{
load('pointer',THINK_PATH.'/Tpl/Autoindex');//载入探针函数
$env_table = check_env();//根据当前函数获取当前环境
echo $env_table;
}

}
?>

首先,浏览器是怎么走到这个文件下呢?比如我自己的环境,我输入的地址:localhost/news/    news文件夹就是项目的根目录,当我输入了localhost/news/文件夹后,默认Thinkphp回去找IndexAction.class.php下的index方法(这是系统默认走的方法,可以在配置文件修改),就走到了index方法下,然后我们看一下上面的代码,index方法做了什么?对他只做了一步,当我们进入这个方法以后他把我们指到了项目目录下的tpl下的Autoindex/hello.html模板下。然后就有了我们看见的界面。

我们需要干什么?

当然我们需要把新闻列出来,我们知道了框架默认的流程那就知道我们要修改哪里的代码了,什么?你还不知道。。。。。回头继续看看去吧。index方法默认指引到了hello.html模板下,我们需要这个模板吗?当然不需要,我们需要一个列表模板,

列表模板我们要新建在哪里?

首先index这个方法是在IndexAction.class.php类下面,那么Thinkphp默认这个类的模板就是tpl/default/Index(Index这个文件夹的命名跟类名同名),意思就是IndexAction.class.php类下面的方法都会在tpl下的/default下的Index文件夹下。那么它还有一个约定,就是方法名跟模板名同名。我们指到了模板怎么建立,那么我们就去tpl下的default下的Index文件夹下新建一个index.html。什么?没有Index文件夹,。。。。。你不会新建一个吗。好了模板我们也建立好了,访问浏览器输入localhost/news    不对啊?他还是原来的模板啊,我们还要修改IndexAction.class.php下的index方法,把$this->display(THINK_PATH.'/Tpl/Autoindex/hello.html');这句话改成$this->display();这样他就会默认去找index.html了。好了,模板也找到了我们就需要列出文章出来了。说道这就需要连接数据库了,(数据库连接在这章暂时不做讲解,很简单,看下api就可以),数据库字段建好以后,自己插入几条测试语句,然后打开index.html编辑

<volist name="list" id="vo">

<a href="__URL__/list/id/{$vo.id}">{$vo.name}</a>

</volist>

这句话的意思是什么呢? 就是循环list这个数组,遍历里面的内容然后输出,list是什么?他的值怎么来的呢?我们需要打开IndexAction.class.php里面的index方法,加入代码

$user =M('表名');      //首先M方法是快速实例化数据表,不用操作model的时候用

$list =  $user->select();     //Thinkphp的查询语句查询出$user这个对象表里面的数据

$this->assign('list',$list);  //把查出来的数据赋值给变量,一边模板输出,看到没有,就是模板volist里面的name值

最后浏览器看一下模板是不是输出了新闻的列表

 

 

文章均属 松林's blog 原创 转载请注明转自 松林's blog

本文地址 :http://www.songlin51.com/archives/593.html