批改状态:未批改
老师批语:
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();
}
}点击 "运行实例" 按钮查看在线实例
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号