批改状态:未批改
老师批语:
模板动态布局,在控制器中动态布局 不需要再模板配置文件中进行配置 也不需要在模板中写任何的标签
<?php
class Index{
//模板布局
public function demo4()
{
/**
* 1 全局配置 config/template.php
* 2 模板标签布局
* 3 在控制器中动态布局 不需要再模板配置文件中进行配置 也不需要在模板中写任何的标签
*/
//return $this -> view -> fetch();
// 动态开启布局 并且是局部的 只针对当前模板起作用
// 调用engine这个属性 engine这个属性存放的也是一个对象 所有要调用layout方法
$this -> view -> engine -> layout(true);
//动态关闭布局
$this -> view -> engine -> layout(false);
//替换模板内容
$this -> view -> engine -> layout("layout","{__TEXT__}"); //修改替换内容 可以修改布局文件中的占位符标志
//return $this -> view -> fetch();
//如果合并写 fetch() 方法参数不能省略 并且模板表达式至少要写到控制器
return $this -> view
-> engine
-> layout(true)
-> fetch("index@index/demo4");
}
}
?>点击 "运行实例" 按钮查看在线实例
模板继承
首先要在view目录下创建一个父类模板 并且该父类模板中只能有block标签
凡是写在父类模板区块之外的标签 全部被原样输出
在父模板中使用block标签的方式为:{block name="区块名称且不允许重复"}内容{/block}
//父模板中的标签使用方式
{//基础模板中 只允许出现block标签 不允许出现任何其他的标签}
<!--{//公共头部 /}-->
{block name="header" /}
{include file="public/header"}
{/block}
{block name="main"}
主题部分
{/block}
{block name="course"}
课程名称:
{/block}
{block name="name"}
姓名
{/block}
{//在父模板中凡是写在区块之外的标签全部被原样输出}
<a href="">链接</a>
<!--{//公共尾部}-->
{block name="footer" /}
{include file="public/footer"}
{/block}点击 "运行实例" 按钮查看在线实例
在子模板中进行继承使用,使用方式为:{extend name="父模板名称" /}
{extend name="base" /}
{//重写父模板中的对应区块内容 会覆盖父模板中的}
{block name="main"}
<h1 style="color: red;text-align: center">我是模板继承网站中的主题部分</h1>
{/block}
{block name="course"}
<!--{__block__} 输出父模板中的内容-->
<h1 style="color: blueviolet;text-align: center"> {__block__}PHP编程</h1>
{/block}
{//区块当中不写任何内容可以删除当前父模板中的内容}
<a href="">这是链接</a>
{//在子模板中凡是写在区块之外的标签全部被忽略}
{block name="name"}{/block}
<!--<h1>模板继承</h1>-->点击 "运行实例" 按钮查看在线实例
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号