摘要:模板渲染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
老师总结:写的很不错哦!代码条例很清晰!整理整理当做笔记都可以了!