ThinkPHP框架基础之视图模板篇


默认的视图目录是模块的View目录(模块可以有多个视图文件目录,这取决于你的应用需要),框架的默认视图文件后缀是.html。 新版模板主题默认是空(表示不启用模板主题功能)。

在每个模板主题下面,是以模块下面的控制器名为目录,然后是每个控制器的具体操作模板文件,例如:

User控制器的add操作 对应的模板文件就应该是:View/User/add.html


系统变量输出

普通的模板变量需要首先赋值后才能在模板中输出,但是系统变量则不需要,可以直接在模板中输出,系统变量的输出通常以{$Think 打头,例如:

  1. {$Think.server.script_name} // 输出$_SERVER['SCRIPT_NAME']变量
  2. {$Think.session.user_id} // 输出$_SESSION['user_id']变量
  3. {$Think.get.pageNumber} // 输出$_GET['pageNumber']变量
  4. {$Think.cookie.name} // 输出$_COOKIE['name']变量

支持输出 $_SERVER$_ENV$_POST$_GET$_REQUEST$_SESSION$_COOKIE变量。

常量输出

还可以输出常量

  1. {$Think.const.MODULE_NAME}

或者直接使用

  1. {$Think.MODULE_NAME}

配置输出

输出配置参数使用:

  1. {$Think.config.db_charset}
  2. {$Think.config.url_model}

模板继承

模板继承是一项更加灵活的模板布局方式,模板继承不同于模板布局,甚至来说,应该在模板布局的上层。模板继承其实并不难理解,就好比类的继承一样,模板也可以定义一个基础模板(或者是布局),并且其中定义相关的区块(block),然后继承(extend)该基础模板的子模板中就可以对基础模板中定义的区块进行重载。

例子:

父模板=>parent.html;

<body>
<block name="top">
<div>页面头信息</div>
</block>
<block name="content">
<div>页面内容</div>
</block>
<block name="foot">
<div>页面尾信息</div>
</block>
</body>

子模板=>children.html;

<extend name="parent"/>
<block name="content">
<div>子页面自定义内容</div><!--内容模块可以自己定义-->
</block>

内置标签

foreach

<?php
namespace HomeController;
use ThinkController;
class DemoController extends Controller
{
    
    public function showtest()
    {
        $attr = array("one"=>100,"two"=>200);
        $this->assign("attr",$attr);//注册变量
        $this->display();//显示模板
    }
}

在对应的showtest.html模板里:

<!--foreach遍历数组-->
<foreach name="attr" item="v">
<div><{$v}></div>
</foreach>

if

<if condition = "$a == 10">
<div>等于</div>
<if condition = "$a lt 100">
<div>小于</div>
<if condition = "$a gt 1">
<div>大于</div>
<if condition = "$a ge 10">
<div>>=</div>
<if condition = "$a le 10">
<div><=</div>
<else />
<div>###</div>
</if>
原文地址:https://www.cnblogs.com/Itwonderful/p/5588100.html