ThinkPHP模板输出display用法分析

本文实例分析了ThinkPHP模板输出display用法。分享给大家供大家参考。具体分析如下:

模板变量赋值后就需要调用模板文件来输出相关的变量,模板调用通过display方法来实现,我们在操作方法的最后使用:

代码如下:

$this->display();

就可以输出模板,根据前面的模板定义规则,因为系统会按照默认规则自动定位模板文件,所以通常display方法无需带任何参数即可输出对应的模板,这是模板输出的最简单的用法。

事情总有特例,或者根本不需要按模块进行分目录存放,不过display方法总是能够帮你解决问题。

Display方法提供了几种规则让你可以随心所欲的输出需要的模板,无论你的模板文件在什么位置。

下面来看具体的用法:

一、调用当前模块的其他操作模板

格式:display('操作名')

例如,假设当前操作是User模块下面的read操作,我们需要调用User模块的edit操作模版,使用:

代码如下:

$this->display('edit');

不需要写模板文件的路径和后缀。

二、调用其他模块的操作模板

格式:display('模块名:操作名')

例如,当前是User模块,我们需要调用Member模块的read操作模版 ,使用:

代码如下:

$this->display('Member:read');

这种方式也不需要写模板文件的路径和后缀,严格来说,这里面的模块名和操作名并不一定需要有对应的模块或者操作,只是一个目录名称和文件名称而已,例如,你的项目里面可能根本没有Public模块,更没有Public模块的menu操作,但是一样可以使用

代码如下:

$this->display('Public:menu');

输出这个模板文件,理解了这个,模板输出就清晰了.

三、调用其他主题的操作模板

格式:display('主题名:模块名:操作名')

例如我们需要 调用Xp主题的User模块的edit操作模版,使用:

代码如下:

$this->display('Xp:User:edit');

这种方式需要指定模块和操作名

四、直接全路径输出模板

格式:display('模板文件名')

例如,我们直接输出当前的Public目录下面的menu.html模板文件,使用:

代码如下:

$this->display('./Public/menu.html');

这种方式需要指定模板路径和后缀,这里的Public目录是位于当前项目入口文件位置下面,如果是其他的后缀文件,也支持直接输出,例如:

代码如下:

$this->display('./Public/menu.tpl');

只要./Public/menu.tpl是一个实际存在的模板文件,如果使用的是相对路径的话,要注意当前位置是相对于项目的入口文件,而不是模板目录.

事实上,display方法还有其他的参数和用法。

有时候某个模板页面我们需要输出指定的编码,而不是默认的编码,可以使用:

代码如下:

$this->display('Member:read', 'gbk');

或者输出的模板文件不是text/html格式的,而是XML格式的,可以用:

代码如下:

$this->display('Member:read', 'utf-8', 'text/xml');

如果你的网站输出编码不是默认的编码,可以使用:

代码如下:

'DEFAULT_CHARSET'=> 'gbk'

如果要输出XML格式的,可以用:

代码如下:

'TMPL_CONTENT_TYPE'=> 'text/xml'

如果不需要渲染模板文件而是直接输出内容,可以使用show方法,例如:

代码如下:

$this->show($content, 'utf-8', 'text/xml');

希望本文所述对大家的ThinkPHP框架程序设计有所帮助。

(0)

相关推荐

  • ThinkPHP3.0略缩图不能保存到子目录的解决方法

    解决办法一(ThinkPHP官方提供的办法,我并没有测试过):升级到ThinkPHP3.1最新的UploadFile.class.php(https://github.com/liu21st/extend/tree/master/Extend/Library/ORG/Net),下载后替换原来的UploadFile.class.php 解决办法二:修改UploadFile.class.php的部分代码 这是自己做的解决办法,增加一个略缩图的子目录生成函数步骤1>> UploadFile.clas

  • 浅析ThinkPHP的模板输出功能

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

  • thinkphp配置连接数据库技巧

    本文实例讲述了thinkphp配置连接数据库的常用方法,分享给大家供大家参考.具体方法如下: 1.在thinkphp入口文件同目录下的config.inc.php中添加数据库配置信息 复制代码 代码如下: <?php  return array(  'DB_TYPE'=>'mysqli',  'DB_HOST'=>'localhost',  'DB_NAME'=>'demo',  'DB_USER'=>'root',  'DB_PWD'=>'root',  'DB_PR

  • ThinkPHP跳转页success及error模板实例教程

    本文以实例讲解了ThinkPHP跳转页面的success与error方法所对应的视图与控制器的实现方法,通过本实例教程可以帮助读者更好的掌握success方法与error方法的使用. 首先是控制器中,可以使用下代码: <?php // 本文档自动生成,仅供测试运行 class IndexAction extends Action { /** +---------------------------------------------------------- * 默认操作 +----------

  • ThinkPHP模板之变量输出、自定义函数与判断语句用法

    本文实例讲述了ThinkPHP模板之变量输出.自定义函数与判断语句用法.主要包括变量输出.自定义函数与判断语句三种用法.分享给大家供大家参考.具体分析如下: 模板操作变量输出: 快捷输出变量 复制代码 代码如下: {:function(-)} //执行方法并输出返回值 {~function} //执行方法不输出 {@var} //输出Session变量 {#var} //输出Cookie变量 {&var} //输出配置参数  {%var} //输出语言变量 {.var} //输出GET变量 {^

  • ThinkPHP模板自定义标签使用方法

    使用模板标签可以让网站前台开发更加快速和简单,使用过dedecms.phpcms等内容管理系统的人应该都知道,cms的前台都是使用模板标签来调用数据.以调用文章列表为例: dedecms可以写成: <ul> {dede:arclist row='10' orderby='id desc' titlelen=''} <li>[field:title]</li> {/dede:arclist} </ul> phpcms可以写成: <ul> {pc:c

  • thinkPHP3.0框架实现模板保存到数据库的方法

    本文实例讲述了thinkPHP3.0框架实现模板保存到数据库的方法.分享给大家供大家参考,具体如下: 在开发cms的时候用到如果将模板文件存入到数据库并显示到页面中 由于thinkphp3.0都是直接从模板文件中读取再解析的那么对于模板存入数据库中就只有自己开发了,还有thinkphp3.0中有mode的功能我们可以定义自己的mode这样就可以达到目的了,那么如何来扩展自己的mode呢?如下: 1.在你的入口文件中输入 define('MODE_NAME','Ey'); 其中"Ey"就

  • thinkPHP的Html模板标签使用方法

    注意:在使用如<html:select />等标签之前,必须要引入TP的标签库:<tagLib name="html" /> 如果我们现在需要一个select下拉菜单项,那么在ThinkPHP中我们可以这样做. 1.在Action控制器的方法中获取数据,举例如下: 复制代码 代码如下: public function mylist(){ $user = new Model('User'); $list = $user->getField('id,usern

  • thinkphp3.0 模板中函数的使用

    变量的来源: 1 从php分配的变量,使用assign分配 2 系统变量 3 路径替换变量 不能使用函数的变量 变量输出快捷标签 {@var}//输出Session变量 和{$Think.session.var}等效 {#var}//输出Cookie变量 和{$Think.cookie.var}等效 {&var}//输出配置参数 和{$Think.config.var}等效 {%var}//输出语言变量 和{$Think.lang.var}等效 {.var}//输出Get变量 和{$Think.

  • thinkPHP数据库增删改查操作方法实例详解

    本文实例讲述了thinkPHP数据库增删改查操作方法.分享给大家供大家参考,具体如下: thinkphp对数据库增删改查进行了封装操作,使得使用更加方便,但是不一定灵活. 可以用封装的用,需要写sql,可以执行sql. 1.原始的 $Model = new Model(); // 实例化一个model对象 没有对应任何数据表 $insert_sql = "INSERT INTO sh_wxuser_collection (user_id,store_id,good_id,addtime) VAL

  • thinkphp模板继承实例简述

    本文实例讲述了thinkphp模板继承的实现方法.分享给大家供大家参考.具体实现方法如下: 模板的继承: 复制代码 代码如下: <block name='top'></block><!--这是父级模板--> <div style='border:1px solid gray;background:#abcdef;height:100px;'>广告部分</div> <block name='body'></block> &l

随机推荐