浅析ThinkPHP的模板输出功能

 更新时间:2014年07月01日 18:00:34   投稿:shichen2014   我要评论
这篇文章主要介绍了ThinkPHP的模板输出功能,需要的朋友可以参考下

ThinkPHP中的每一个xxxAction.class.php文件就代表着一个应用模块,这个Action中的每一个方法(function)代表着一个操作,操作可以分为有输出到模板的操作和只具执行不需要输出的操作。
打开Myapp/Lib/Action/IndexAction.class.php文件,我们可以看到里面的基础代码:

class IndexAction extends Action{
public function index(){
}
}

对此,需要指出一下几点:

1.在ThinkPHP的开发中,要增加一个应用模块,就要在Action文件夹里建立一个类,类的文件命名格式是“模块名称+Action.class.php”。例如我们这里的应用模块是Index,所以定义文件名为IndexAction.class.php。
2.应用模块类的定义要继承框架的Action类。要为这个应用模块添加一个操作,则定义一个以此操作为命名的function.例如上面的index操作。

通常一个应用模块中,会有若干操作(function)需要有与用户交互的页面,这就需要用到模板输出,ThinkPHP本身已内置了一套具有ThinkPHP特色的,很强大易扩展但应用非常方便兼简单的模板引擎。
在应有模块中,如果某个操作是需要页面显示的,只要对应在Myapp/Tpl/default/里建立一个文件夹,文件夹以应用模块的名称来命名,然后在这个文件夹下,建立一个以这个function名称来命名的html文件,就可以在这个方法中使用$this->display()方法来直接调用该模板。(当然也可以调用其它模块下的其它模板或显式指定模板文件位置和名称,由于是循序渐进式的学习,就让我们先忽略吧)了解这些理论后,我们先简单实操一下这些知识。
(1)在Myapp/Tpl/default/下建立一个文件夹,根据应用模块的名称,我们将这个文件夹命名为Index
(2)在Myapp/Tpl/default/Index/下建立一个html文件,根据操作名称,我们命名该文件为index.html
(3)打开Myapp/Lib/Action/IndexAction.class.php文件,修改代码为

<?php
class IndexAction extends Action{
public function index(){
$value =  'hello,ThinkPHP';
$this->assign('name',$value);
$this->display();
}
}
?>

(摘自手册:ThinkPHP模板指南,此后的知识要点均来自ThinkPHP官方手册,不再申明)
在Action类里面使用 assign方法对模板变量赋值,无论何种变量类型都统一使用assign赋值。

$this->assign('name',$value);

// 下面的写法是等效的

$this->name = $value ;

// 模板变量赋值后就需要调用模板文件来输出相关的变量,模板调用通过display方法来实现

$this->display();


4 打开Myapp/Tpl/default/Index/index.html文件,代码为

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title>{$name}</title>
</head>
<body>
测试输出: {$name}
</body>
</html>

此处注意:模板变量使用{$变量名称}这种标签进行输出。

不同的模板变量类型,使用不同的标签,标签可以自行另外定义,暂且不理会。

5 打开浏览器输入地址:<http://127.0.0.1/>,我们可以看到,定义的模板变量已经输出来了。

附加补充知识:

1 如果要同时输出多个模板变量,可以使用下面的方式:

$array = array();
$array['name']  =  'thinkphp';
$array['email']  =  '123456@vip.qq.com';
$array['phone']  =  '123456';
$this->assign($array);

这样,就可以在模板文件中同时输出name、email和phone三个变量。

2 我们使用上面的变量定义,将整个数组定义为一个模板变量来输出

$array = array();
$array['name']  =  'thinkphp';
$array['email']  =  '123456@vip.qq.com';
$array['phone']  =  '123456';
$this->assign('array',$array);
$this->display();

在html中,要输出$array['name']的值,代码是
{$array.name} 或 {$array['name']}

3 将这个数组循环输出

(1) IndexAction.class.php中代码更改如下

<?php
class IndexAction extends Action{
public function index(){
$array = array();
$array['name']  =  'thinkphp';
$array['email']  =  '123456@vip.qq.com;
$array['phone']  =  '123456';
$value =  'hello,ThinkPHP';
$this->assign('array',$array);
$this->assign('name',$value);
$this->display();
}
}
?>

(2) 将Myapp/Tpl/default/Index/index.html代码更改如下:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title>{$name}</title>
</head>
<body>
<iterate name="array" id="vo">
{$vo}<br />
</iterate>
</body>
</html>

注意:name='array'是指要循环的模板变量是array,id='vo'是指这个数据在模板输出时所使用的名称

相关文章

  • PHP书写格式详解(必看)

    PHP书写格式详解(必看)

    下面小编就为大家带来一篇PHP书写格式详解(必看)。小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-05-05
  • laravel自定义分页的实现案例offset()和limit()

    laravel自定义分页的实现案例offset()和limit()

    今天小编就为大家分享一篇laravel自定义分页的实现案例offset()和limit(),具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-10-10
  • PHP+jQuery翻板抽奖功能实现

    PHP+jQuery翻板抽奖功能实现

    在电视节目中有一种抽奖形式暂且叫做翻板抽奖,台上有一个墙面,墙面放置几个大方块,主持人或者抽奖者翻开对应的方块即可揭晓中奖结果。类似的抽奖形式还可以应用在WEB中,本文将使用PHP+jQuery为您讲解如何实现翻板抽奖程序。
    2015-10-10
  • PHP中Restful api 错误提示返回值实现思路

    PHP中Restful api 错误提示返回值实现思路

    REST是Representational State Transfer的缩写,翻译为“表现层状态转化”。表现层其实就是资源,因此可以理解为“资源状态转化”。接下来通过本文给大家介绍Restful api 错误提示返回值实现思路,感兴趣的朋友一起学习吧
    2016-04-04
  • PHP把网页保存为word文件的三种方法

    PHP把网页保存为word文件的三种方法

    最近工作遇到关于生成word的问题,现在总结一下生成word的三种方法的相关资料,需要的朋友可以参考下
    2014-04-04
  • Smarty中常用变量操作符汇总

    Smarty中常用变量操作符汇总

    这篇文章主要介绍了Smarty中常用变量操作符,实例汇总了常见的各种变量操作符,非常具有实用价值,需要的朋友可以参考下
    2014-10-10
  • PHP 类相关函数的使用详解

    PHP 类相关函数的使用详解

    本篇文章是对PHP类的相关函数的使用进行了分析介绍。需要的朋友参考下
    2013-05-05
  • php实现微信支付之现金红包

    php实现微信支付之现金红包

    这篇文章主要为大家详细介绍了php实现微信支付之现金红包,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-05-05
  • phpMyAdmin无法登陆的解决方法

    这篇文章主要为大家详细介绍了PhpMyAdmin无法登陆的解决方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-04-04
  • PHP+XML 制作简单的留言本 图文教程

    PHP+XML 制作简单的留言本 图文教程

    本例演示了PHP如何操纵XML。留言本具有以下基本功能.
    2009-11-11

最新评论