摘要:模板渲染public function demo1() { $name = 'Eddie'; retur
模板渲染
public function demo1()
{
$name = 'Eddie';
return $this->fetch('index@index/demo1',['name'=>$name]);
// return view('demo1',['name'=>$name]);//不推荐使用,助手函数方法
}模板赋值
//模板赋值
public function demo2()
{
//1.assign('模板变量名',值)
$name = 'eddie';
$this->view->assign('my_name',$name);
//2.传参赋值:fetch('模板',[参数数组])
//3 对象赋值:__set() __get()
$this->view->age = 32;
return $this->view->fetch();
}模板过滤与替换
public function demo3()
{
//模板中的内容替换
$this->view->name = 'eddie';
$this->view->age = 31;
$filter = function($content){
return str_replace('eddie','eddie 付', $content);
};
return $this->filter($filter)->fetch();
}模板布局
controller
public function demo4()
{
/**
* 动态配置
*/
return $this->view//调用视图对象
->engine//模板引擎对象
->layout('layout','{__TEXT__}')//开启模板布局
->fetch('index/demo4');//渲染模板,至少给到控制器级别
}layout.html
{include file="public/header" /}
{__TEXT__}
{include file="public/footer" /}header.html
<style type="text/css">
.header {
width: 800px;
height: 60px;
margin:auto;
background:wheat;
text-align: center;
line-height: 60px;
}
</style>
<div class="header">头部</div>footer.html
<style type="text/css">
.footer {
width: 800px;
height: 60px;
margin:auto;
background:wheat;
text-align: center;
line-height: 60px;
}
</style>
<div class="footer">底部</div>模板继承
controller
//模板继承
public function demo5()
{
/**
* 1.在view/base.html: 做为被其它模板继承的基础模板文件
* 2.base.html中,需要被子模板重写的内容全部用{block name=""}进行定义
* 3.子模板中直接用{extend name="" /}继承即可
*/
return $this->view->fetch();
}base.html
{block name="header"}
{include file="public/header" /}
{/block}
{block name="main"}主体部分{/block}
{block name="course"}技能名称:{/block} <br>
{//site区块,在子模块中未进行重写,会原样显示}
{block name="site"}PHP中文网{/block} <br>
{block name='name'}Edward1{/block}
{block name="footer"}
{include file="public/footer" /}
{/block}
{//<h3>标签中的内容会原样输出到子模板中}
<h3>我是基础模板中的内容(不管怎样都原样输出)</h3>
{/*
1.基础模板中,应该只有block标签,而不应该有其它的标签;
2.写在block标签之外内容,会原样输出到子模板中
*/}demo5.html
{extend name="base" /}
{block name="main"}
<h1 style="text-align: center">我是子模板的网站的主体部分(重写父模板的内容)</h1>
{/block}
{block name="course"}{__block__}学习速度快{/block}
{//清除基础模板中name区块的内容}
{block name="name"}{/block}
{/*
1.子模板中,只能对基础模板中的区块block进行重写;
2.子模板中不能写其它内容,否则会直接忽略掉;
4.子模块中未重写的区块内容,将原样显示
3.子模拟中的区块顺序无所谓;
4.如果子模块中的区块内容为空,则是清除区块中的原内容
*/}
{//以下内容不会显示在模板中}
<a href="http://www.php.cn">欢迎访问PHP中文网</a>
批改老师:韦小宝批改时间:2018-12-24 17:55:38
老师总结:写的很不错哦!代码条例很清晰!整理整理当做笔记都可以了!