Correction status:qualified
Teacher's comments:
模板赋值与模板内容过滤与替换技术:
//模板赋值 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>
点击 "运行实例" 按钮查看在线实例