安装完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="/admin999/Think/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值
最后浏览器看一下模板是不是输出了新闻的列表
最佳答案
