1.模板赋值:
1.1模板:
实例
我的姓名是:<span style="color:red">{$name}</span> <br> 我的工资是:<span style="color:red">{$salary}</span>
运行实例 »
点击 "运行实例" 按钮查看在线实例
1.2
实例
<?php namespace app\index\controller; use think\Controller; class Index extends Controller { //模板赋值 public function demo2() { //1.assign('模板变量名',值) $name = 'peter'; $this->view->assign('name', $name); //2.传参赋值: fetch('模板',[参数数组]) //3.对象赋值: // $this->view====View的对象 $this->view->salary = 5000; return $this->view->fetch(); //不传参数,指的是默认模板 index@index/demo2 } }
运行实例 »
点击 "运行实例" 按钮查看在线实例
2.模板过滤与替换
2.1模板同上
2.2
实例
<?php namespace app\index\controller; use think\Controller; class Index extends Controller { //模板过滤与替换 public function demo3() { //tp51之前,直接删除了替换功能,采用config/template.php进行配置 //将模板中的'xiaoming'替换成:小明 $this->view->name = 'xiaoming'; $this->view->salary = 8000; // $filter = function($content) { // return str_replace('xiaoming', '小明', $content); // }; // return $this->filter($filter)->fetch(); return $this->filter(function($content) { return str_replace('peter', '', $content); })->fetch(); //为空就是过滤 } }
运行实例 »
点击 "运行实例" 按钮查看在线实例
3.模板动态布局
3.1模板header
实例
<style type="text/css"> .header { width: 800px; height: 60px; margin: auto; background: wheat; text-align: center; line-height: 60px; } </style> <div class="header">网站头部</div>
运行实例 »
点击 "运行实例" 按钮查看在线实例
3.2模板footer
实例
<style type="text/css"> .footer { width: 800px; height: 60px; margin: auto; background: wheat; text-align: center; line-height: 60px; } </style> <div class="footer">网站底部</div>
运行实例 »
点击 "运行实例" 按钮查看在线实例
3.3模板layout
实例
{include file="public/header" /} {__TEXT__} {include file="public/footer" /}
运行实例 »
点击 "运行实例" 按钮查看在线实例
3.4模板demo
实例
{//layout name="layout" /} {//__NOLAYOUT__} <style type="text/css"> .main { width: 800px; height: 600px; margin: auto; background: lightgreen; text-align: center; line-height: 600px; } </style> <div class="main">主体内容</div>
运行实例 »
点击 "运行实例" 按钮查看在线实例
3.5
实例
<?php namespace app\index\controller; use think\Controller; class Index extends Controller { //模板布局 public function demo4() { /** * 一、全局配置 * 1.config/template.php * 模板布局的配置 * 'layout_on' => true, //开启模板布局 * 'layout_name' => 'layout', //指定模板布局文件 * * 二、模板标签进行配置 * 1.不依赖于全局配置,在模板中直接用标签进行控制 * 2.{layout name="布局模板名" /} * 3.关闭布局:{__NOLAYOUT__} * * 三、动态配置 * 1.不需要再模板配置文件中进行任何配置 * 2.不需要再当前模板中添加任何标签 */ //开启布局 // $this->view->engine->layout(true); // $this->view->engine->layout('layout', '{__TEXT__}'); // 关闭 // $this->view->engine->layout(false); // return $this->view->fetch(); return $this->view //调用视图对象 ->engine //模板引擎对象 ->layout(true) //开启模板布局 ->fetch('index\demo4'); //渲染模板,模板表达式至少要给到控制器级别 } }
运行实例 »
点击 "运行实例" 按钮查看在线实例
4.模板继承
4.1模板base
实例
{//基础模板中只允许出现block标签} {block name="header"} {include file="public/header" /} {/block} {block name="main"}主体部分{/block} {block name="course"}课程名称:{/block} <br> {block name="name"}朱老师{/block} {block name="footer"} {include file="public/footer" /} {/block} {//在父模板中凡是写在block之外的内容在子模板中全部原样输出}
运行实例 »
点击 "运行实例" 按钮查看在线实例
4.2模板demo
实例
{extend name="base" /} {//将父模板中的main区块进行重写} {block name="main"} <h1 style="text-align: center">我是子模板的网站的主体部分</h1> {/block} {block name="course"} {__block__} PHP编程 {/block} {//将父模板中的name区块删除} {block name="name"}{/block} {//在子模板中区块的顺序不重要} {//在子模板中凡是写在block之外的内容全部忽略} <a href="">12345</a>
运行实例 »
点击 "运行实例" 按钮查看在线实例
4.3
实例
<?php namespace app\index\controller; use think\Controller; class Index extends Controller { //模板继承 public function demo5() { /** * 1. view/base.html : 基础模板,供其他子模板进行继承 * 2. base.html 内容全部要用标签{block进行定义} */ return $this->view->fetch(); } }
运行实例 »
点击 "运行实例" 按钮查看在线实例