您的位置:首页 > 编程语言 > PHP开发

TP的模板引擎的变量输出

2014-02-17 13:14 477 查看
TP中的每一个xxxAction.class.php文件代表着一个应用模块,此Action中的每一个方法(function)代表着一个操作,操作分为有输出到模板的操作和只具执行不需要输出的操作。

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

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

通常一个应用模块中,会有若干操作(function)需要有与用户交互的页面,这就需要用到模板输出,

TP本身已内置了一套具有TP特色的,很强大易扩展但应用非常方便兼简单的模板引擎。

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();

    }

}

?>

 

在Action类里面使用 assign方法对模板变量赋值,无论何种变量类型都统一使用assign赋值。

 

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>

模板变量使用{$变量名称}这种标签进行输出

 

 

定义数组

 IndexAction.class.php中代码更改如下

<?php

class IndexAction extends Action{

    public function index(){

        $array = array();

        $array['name']    =    'thinkphp';

        $array['email']   =    'liu21st@gmail.com';

        $array['phone']   =    '12335678';

        $value  =   'hello,ThinkPHP';

        $this->assign('array',$array);

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

        $this->display();

    }

}

?>

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

遍历数组<iterator>标签 name="数组名称" id=没个变量的值

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

function中的数据改变对应的是tpl中的数据改变

每个tpl中的html文件都对应了action中的方法的名称了
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: