一步一步循序渐进学习TP二(新手篇)

由于时间关系,此系列共同学习教程更新的速度会比较慢些,请多见谅,上一章节的内容请看这里。
http://bbs.thinkphp.cn/viewthread.php?tid=4673&extra=page%3D1

-------------------------------------
PHP开发,无非是对数据库使用了逻辑控制的增删改查和使用模板输出数据内容。
通常数据的插入都是通过表单来进行添加。表单提交涉及到页面显示,
所以这一节我们暂时放下对数据库的操作讲解,先来简单学习一下TP的模板引擎的变量输出。

第四节 简单了解TP的模板输出
上一章节我们提及到,
TP中的每一个xxxAction.class.php文件代表着一个应用模块,此Action中的每一个方法(function)代表着一个操作,操作分为有输出到模板的操作和只具执行不需要输出的操作。
打开Myapp/Lib/Action/IndexAction.class.php文件,我们看看里面的基础代码
  1. class IndexAction extends Action{
  2.     public function index(){
  3.     }
  4. }
复制代码
理论知识:

1 在TP开发中,要增加一个应用模块,就在Action文件夹里建立一个类,类的文件命名格式是模块名称+Action.class.php。例如我们这里的应用模块是Index,所以 定义文件名为IndexAction.class.php

2 应用模块类的定义要继承 框架的Action类。要为这个应用模块添加一个操作,则定义一个以此操作为命名的function.例如上面的index操作。

通常一个应用模块中,会有若干操作(function)需要有与用户交互的页面,这就需要用到模板输出,
TP本身已内置了一套具有TP特色的,很强大易扩展但应用非常方便兼简单的模板引擎。

在应有模块中,如果某个操作是需要页面显示的,只要对应在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文件,修改代码为
  1. <?php
  2. class IndexAction extends Action{
  3.     public function index(){
  4.         $value  =   'hello,ThinkPHP';
  5.         $this->assign('name',$value);
  6.         $this->display();
  7.     }
  8. }
  9. ?>
复制代码
代码知识要点(摘自手册:ThinkPHP模板指南,此后的知识要点均来自TP官方手册,不再申明)

在Action类里面使用 assign方法对模板变量赋值,无论何种变量类型都统一使用assign赋值。
  1. $this->assign('name',$value);
复制代码
// 下面的写法是等效的
  1. $this->name = $value ;
复制代码
// 模板变量赋值后就需要调用模板文件来输出相关的变量,模板调用通过display方法来实现
  1. $this->display();
复制代码
4 打开Myapp/Tpl/default/Index/index.html文件,代码为
  1. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
  2. <html>
  3. <head>
  4. <title>{$name}</title>
  5. </head>
  6. <body>
  7. 测试输出: {$name}
  8. </body>
  9. </html>
复制代码
代码知识要点:
模板变量使用{$变量名称}这种标签进行输出。
不同的模板变量类型,使用不同的标签,标签可以自行另外定义,暂且不理会。

5 打开浏览器输入地址:http://127.0.0.1/,我们可以看到,定义的模板变量已经输出来了。
附加补充知识:
1 如果要同时输出多个模板变量,可以使用下面的方式:
  1. $array = array();
  2. $array['name']    =    'thinkphp';
  3. $array['email']   =    'liu21st@gmail.com';
  4. $array['phone']   =    '12335678';
  5. $this->assign($array);
复制代码
这样,就可以在模板文件中同时输出name、email和phone三个变量。
2 我们使用上面的变量定义,将整个数组定义为一个模板变量来输出
  1. $array = array();
  2. $array['name']    =    'thinkphp';
  3. $array['email']   =    'liu21st@gmail.com';
  4. $array['phone']   =    '12335678';
  5. $this->assign('array',$array);
  6. $this->display();
复制代码
在html中,要输出$array['name']的值,代码是
  1. {$array.name} 或 {$array['name']}
复制代码
3 将这个数组循环输出

3.1 IndexAction.class.php中代码更改如下
  1. <?php
  2. class IndexAction extends Action{
  3.     public function index(){
  4.         $array = array();
  5.         $array['name']    =    'thinkphp';
  6.         $array['email']   =    'liu21st@gmail.com';
  7.         $array['phone']   =    '12335678';
  8.         $value  =   'hello,ThinkPHP';
  9.         $this->assign('array',$array);
  10.         $this->assign('name',$value);
  11.         $this->display();
  12.     }
  13. }
  14. ?>
复制代码
3.2 将Myapp/Tpl/default/Index/index.html代码更改如下:
  1. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
  2. <html>
  3. <head>
  4. <title>{$name}</title>
  5. </head>
  6. <body>
  7. <iterate name="array" id="vo">
  8. {$vo}<br />
  9. </iterate>
  10. </body>
  11. </html>
复制代码
代码知识要点:
name='array'是指要循环的模板变量是array,id='vo'是指这个数据在模板输出时所使用的名称

对于TP的模板引擎输出先简单了解到这里。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值