Thinkphp 模版

时间:2022-06-15 05:08:06

1.显示模版

在Home/Controller/MainController.class.php中写一个方法来显示对应的模版

function text()
{
//变量输出
$this->assign("text","Hello");
$attr=array("one"=>100,"two"=>200);
$this->assign("shuzu",$attr);
//使用运算符,注册两个变量
$this->assign("a",10);
$this->assign("b",15);
//三元运算符
$this->assign("pd",false);
$this->display();
}

在Home/View/Main中新建一个文件text.html

<body>
<h1>测试页面</h1>
1.变量输出
<div><{$text}></div>
<!--取数组内容: -->
<div><{$shuzu["one"]}></div>
<div><{$shuzu.one}></div>
2.系统变量输出
<div><{$Think.server.script_name}></div>
3.常量输出
不带双下划线的常量输出(两种方式都可):
<div><{$Think.const.MODULE_NAME}></div>
<div><{$Think.MODULE_NAME}></div>
带双下划线的常量输出:
<div>__ROOT__</div>
<div>__ACTION__</div>
4.配置输出
<div><{$Think.config.db_charset}></div>
5.语言变量
<div><{$Think.lang.page_error}></div>
6.默认值输出
<div><{$user.nickname|default="这家伙很懒,什么也没留下"}></div>
7.使用运算符
<div>a*b=<{$a*$b}></div>
<div>a+b=<{$a+$b}></div>
<div>注意:在使用运算符的时候,不再支持点语法和常规的函数用法</div>
8.三元运算符
<div><{$pd?"男":"女"}></div>
<div>注意:三元运算符中暂时不支持点语法。</div>
9.包含文件
<include file="Main/Zi" />

运行结果:

Thinkphp 模版

2.模版继承:

模板继承是一项更加灵活的模板布局方式,模板继承不同于模板布局,甚至来说,应该在模板布局的上层。

模板继承其实并不难理解,就好比类的继承一样,模板也可以定义一个基础模板(或者是布局),并且其中定义相关的区块(block),

然后继承(extend)该基础模板的子模板中就可以对基础模板中定义的区块进行重载。

因此,模板继承的优势其实是设计基础模板中的区块(block)和子模板中替换这些区块。

每个区块由<block></block>标签组成。

在Home/View/Main中新建文件 fu.html 和 zi.html

Thinkphp 模版

在Home/Controller/MainController.class.php中写一个方法

function Zi()
{
$this->display();
}

fu.html :

<body>
<block name="top">
<div>这是头部内容</div>
</block> <block name="zhong">
<div>这是主内容</div>
</block> <block name="foot">
<div>这是页脚</div>
</block> </body>
</html>

zi.html:

<extend name="fu" />

子模板完全继承父模版的内容:

Thinkphp 模版

若修改子模板:

<extend name="fu" />
<block name="zhong">
<div style="width:50%; height:50px; background-color:#9F9; color:#00F">主内容</div>
</block>

运行结果:

Thinkphp 模版

3.内置函数

3.1 if标签

在condition属性中可以支持eq等判断表达式,同上面的比较标签,但是不支持带有”>”、”<”等符号的用法,因为会混淆模板解析

注意条件的写法(双引号里面),注意else后面有"/"

<if condition="$b == 10">

  <div>10</div>

<else/>

  <div>20</div>

</if>

Thinkphp 模版

3.2 foreach 标签

foreach遍历数组,name的值为变量名(数组名),item的值为循环数组的每一项的值

<foreach name="shuzu" item="v" >
<div><{$v}></div>
</foreach>

3.3 volist 标签

volist标签通常用于查询数据集(select方法)的结果输出,通常模型的select方法返回的结果是一个二维数组,可以直接使用volist标签进行输出。

<volist name="list" id="vo">

{$vo.id}:{$vo.name}<br/>

</volist>

3.4 for 标签

Thinkphp 模版

开始值、结束值、步进值和循环变量都可以支持变量,开始值和结束值是必须,

其他是可选。comparison 的默认值是lt;;name的默认值是i,步进值的默认值是1,

举例如下:

Thinkphp 模版

3.5 switch case 标签

Thinkphp 模版

使用方法如下:

Thinkphp 模版

3.6 范围判断标签

范围判断标签包括in notin between notbetween四个标签,都用于判断变量是否中某个范围。

Thinkphp 模版

Thinkphp 模版

3.7 import 标签:导入外部JS和CSS文件的方法

Thinkphp 模版

Thinkphp 模版

Thinkphp 模版

Thinkphp 模版

4.原样输出:可以使用<literal></literal>标签来防止模板标签被解析

5. 模版注释

模板支持注释功能,该注释文字在最终页面不会显示,仅供模板制作人员参考和识别。

Thinkphp 模版

Thinkphp 模版

Thinkphp 模版

6.模版替换

Thinkphp 模版

Thinkphp 模版的更多相关文章

  1. thinkphp模版调用函数方法

    原文:thinkphp模版调用函数方法 {变量|函数1|函数2|函数3=参数1,参数2,参数3,###} ###为第4个参数,代表变量替换为第4个参数 举例: {$username|substr=0, ...

  2. ThinkPHP模版引擎之变量输出具体解释

    ThinkPHP模版引擎之变量输出具体解释 使用ThinkPHP开发有一定时间了,今日对ThinkPHP的模板引擎变量解析深入了解了一下.做出一些总结,分享给大家供大家參考. 详细分析例如以下: 我们 ...

  3. ThinkPHP 模版中的内置标签

    内置标签就是模版引擎提供的一组可以完成控制.循环和判断功能的类似HTML语法的标签.   一.判断比较:   1.if标签进行条件判断 //if语句的完整格式 <if condition=&qu ...

  4. ThinkPHP模版验证要注意的地方

    Model页面 <?php class LoginModel extends Model { //protected $tableName = 'userinfo'; //表名和model不一致 ...

  5. thinkphp模版主题使用方法

    3.1.3模版主题使用方法,手册貌似没有.配置项: 'DEFAULT_THEME'=>'default',//默认主题 'THEME_LIST'=>'default,theme',//主题 ...

  6. thinkphp 模版引擎

    系统支持原生的PHP模板,而且本身内置了一个基于XML的高效的编译型模板引擎,系统默认使用的模板引擎是内置模板引擎,关于这个模板引擎的标签详细使用可以参考模版引擎部分. 内置的大理石平台检定规程模板引 ...

  7. thinkphp模版常量替换机制

  8. THINKPHP模版控制循环输出

    <volist name="data" id="vo"> <div class="case1_01 flexslider" ...

  9. ThinkPHP模版时间显示

    <!-- 如果有日期输出,即$data.time不为空且不为0,则格式化时间戳,否则默认当前时间戳,并格式化成日期格式 --> {$data.time|default=time()|dat ...

随机推荐

  1. 【C&num;】可空类型&lpar;Nullable&rpar;

    C# 可空类型(Nullable) C# 提供了一个特殊的数据类型,nullable 类型(可空类型),可空类型可以表示其基础值类型正常范围内的值,再加上一个 null 值. 例如,Nullable& ...

  2. 初识angularjs

    1,angular的ng-model带来了双向绑定机制 2,用angular的表达式{{...}}现实在HTML中,存储在我们的$scope上 3,在angular中$scope是连接controll ...

  3. How to Notify Command to evaluate in mvvmlight

    How to Raize Command to evalituate in mvvm In mvvmlight, we bind our control to the relaycommand obj ...

  4. TFSAPI

    Team Foundation Server (TFS)工具的亮点之一是管理日常工作项, 工作项如Bug, Task,Task Case等. 使用TFS API编程访问TFS服务器中的工作项, 步骤如 ...

  5. c pointer and array

    Pointer:  A pointer is a variable that contains the address of a variable. if c is a char and p is a ...

  6. 基于Citus和ASP&period;NET Core开发多租户应用

    Citus是基于PsotgreSQL的扩展,用于切分PsotgreSQL的数据,非常简单地实现数据“切片(sharp)”.如果不使用Citus,则需要开发者自己实现分布式数据访问层(DDAL),实现路 ...

  7. this应用详解-js原生

    学习记录,以防遗忘,适合新手解惑.老鸟避让! 在微信H5的开发中,很多页面都是简单的一个模型item在加上很多很多数据组成起来的.例如微信朋友圈,仔细观察,他的一个基本模型就是 “头像图片 + 用户昵 ...

  8. &lbrack;React&rsqb; 03 - Intro&colon; react&period;js in twelve demos

    Ref: React 入门实例教程 这算什么,react学习例子的十二门徒?哈哈 如何运行别人的react项目? Ref: [React全家桶入门之CODE]项目代码与使用方法 使用git克隆项目到本 ...

  9. &num;题目:有10 台被监控主机、一台监控机,在监控机上编写脚本,一旦某台被监控机器&sol; 分区适用率大于80&percnt;, 就发邮件报警放到crontab 里面, 每10 分钟检查一次

    #题目:有10 台被监控主机.一台监控机,在监控机上编写脚本,一旦某台被监控机器/ 分区适用率大于80%, 就发邮件报警放到crontab 里面, 每10 分钟检查一次 #测试机器:虚拟机Linux ...

  10. 高考结束了,在门头沟有没有想学php建站的。

    教你简单的html 教你文章后台管理 数据库管理及备份 编程工具的使用 如何找到你要学习的内容