批改状态:合格
老师批语:
模板赋值与模板内容过滤与替换技术:
//模板赋值
public function demo2()
{
//1.assign('模板变量',值)====(在view/index/demo2.html里面的$name,值就是当前类中的属性值)
$name = '好好学习,天天向上';
$this->view->assign('my_name',$name);
//2.传参赋值:fetch('模板',[参数数组])====在27行
//3.对象赋值
$this->view->age = 25;
return $this->view->fetch();//默认的 index@index/demo2
}
//模板过滤与替换
public function demo3()
{
//tp51之前,直接删除了替换功能,采用config/template.php进行配置
//将模板中的‘好好学习,天天向上’ 替换成 ‘加油!!!’
$this->view->name = '好好学习,天天向上';//通过对象赋值
$this->view->age = 20;
// $filter = function($content){
// return str_replace('好好学习,天天向上','加油!!!',$content);
// };
// echo $this->view->filter($filter)->fetch(); //过滤相当于删除,在第二个参数不赋值就行了
echo $this->view->filter(function($content){
return str_replace('好好学习,天天向上','加油!!!',$content);
})->fetch();
}点击 "运行实例" 按钮查看在线实例
模板动态布局与模板继承技术:
//模板布局
public function demo4()
{
/**
* 一、全局配置 相当于给所有的模板都默认的添加了头和底部
* 1.config/template.php
*
*
* 二、模板标签进行配置 选择性的添加头和底
* 1.不依赖于全局配置,在模板中直接用标签进行控制
* 2.{layout name="布局模板名"}
* 3.关闭布局:{__NOLAYOUT__}
*
*
* 三、动态配置
* 1.不需要在模板配置文件中进行任何配置、
* 不需要在当前模板中添加任何标签
*/
//开启布局
// $this->view->engine->layout(true);
// $this->view->engine->layout('layout','{__HAPPY1__}');//第一个参数是 布局模板名 第二个参数是 布局模板里的空位
//关闭布局
// $this->view->engine->layout(false);
// 开启布局的链式操作
return $this->view //调用视图对象
->engine //模板引擎对象
->layout(true) //开启模板布局
->fetch('index\demo4'); //渲染模板,至少要给到控制器级别
}
//模板继承
public function demo5()
{
/**
* 1.view/base.html:基础模板,供其他子模板进行继承
*/
return $this->view->fetch();
}
}点击 "运行实例" 按钮查看在线实例
demo5:
{extend name="base" /}
{//将父模板中的main区块进行重写}
{block name="main"}
<h3 style="text-align: center;">我是子模板的网站的主体部分</h3>
{/block}
{block name="age"}
{__block__}今年我已经满了25岁啦!!!
{/block}
{//删除基模板中的值,也就是在子模板中不赋值为空,要对应区块}
{block name="name"}{/block}
{//在子模板中凡是写在了block之外的内容全部忽略,基模板中没有这个区块,在子模板中写上也没用}
<a href="">我是子模板中的。。。</a>点击 "运行实例" 按钮查看在线实例
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号