博客列表 >5月29作业(模板赋值与模板内容过滤与替换)

5月29作业(模板赋值与模板内容过滤与替换)

张凯的博客
张凯的博客原创
2018年05月30日 17:07:36509浏览
<?php
namespace app\index\controller;
// use think\facade\View;
use think\Controller;
class Index extends Controller
{
    public function index()
    {

        return "<h1>hello world</h1>";
    }
    public function demo1(){
        $name = "petter 313";
        // return $name;

        // fetch('模版表达式')
        // 模版表达式:模块@控制器/操作方法
       // return View::display("我的名字叫".$name);
        // return View::fetch('index@index/demo1',['name'=>$name]);
        // return $this->view->fetch('index@index/demo1',['name'=>$name]);
        // 越过view属性调用fetch
        // return $this->fetch('index@index/demo1',['name'=>$name]);
        // 越过模版表达式
        $this->assign('name',$name);
        return $this->fetch();//参数1可以为空

        // 也可使用助手函数view,不依赖任何类
        // return view('demo1',['name'=>$name]);
    }

    // 模版赋值
    public function demo2(){
        // 1assign('模版变量','值')
        $name = 'zk';
        $this->view->assign('name',$name);
        // 2fetch('模版','赋值数组')赋值
        // 3对象赋值
        $this->view->money = '5000';
        return $this->view->fetch(); 
    }
    // 模版过滤
    public function demo3(){
        $this->view->name = 'zk';
        $this->view->money = '5000';
        $filter = function($content){
            return str_replace('zk','owlcity',$content);
        };
        return $this->filter($filter)->fetch();
    }
    // 模版布局
    public function demo4(){
        /**
         * 1:全局配置
         *     config/template
         * 2:模版标签进行配置
         *     -1:不依赖全局配置,在模版中直接用标签进行控制
         *     -2:{layout name="布局模版名"}
         *     -3:{关闭布局 __NOLAYOUT__}
         * 3:动态配置
         */
        // 开启布局
        // $this->view->engine->layout('layout','{__TEXT__}');  //layout 参数二可以自定义与模版内容常量相同
        // $this->view->engine->layout('layout');
        // 关闭布局
        // $this->view->engine->layout(false);

        // return $this->view->fetch();

        // 链式操作
        $this->view //调用视图对象
        ->engine  //开启模版引擎
        ->layout('layout') //开启模版布局
        ->fetch('index/demo4'); //渲染模版

    }

    // 模版继承
    public function demo5(){
       return $this->view->fetch();
    }
}

模版布局 view/base.html

{//基础模版只允许出现block标签}
{block name="header"}
    {include file="public/header"}
{/block}

{block name="main"}主体部分{/block}

{block name="course"}
    thinkphp
{/block}


{block name="footer"}
    {include file="public/footer"}
{/block}

自模版demo5.html

{extend name="base"}

{//将父模版中的main区块进行重写}
{block name="main"}
    <h1>将父模版中的main区块进行重写</h1>
{/block}
<!-- 在子模版中写在区块之外的内容全部忽略 -->
<p>额外额外额外</p>
{block name="course"}
 <h2>{__block__}1111</h2>
{/block}


声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议