Blogger Information
Blog 51
fans 3
comment 1
visits 36227
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
模板赋值与模板内容过滤与替换技术、模板动态布局与模板继承技术—2018年6月3日15时21分
Gee的博客
Original
999 people have browsed it

1.模板赋值:

1.1模板:

实例

我的姓名是:<span style="color:red">{$name}</span>
<br>
我的工资是:<span style="color:red">{$salary}</span>

运行实例 »

点击 "运行实例" 按钮查看在线实例

1.2

实例

<?php
namespace app\index\controller;
use think\Controller;

class Index  extends Controller
{
    //模板赋值
    public function demo2()
    {
        //1.assign('模板变量名',值)
        $name = 'peter';
        $this->view->assign('name', $name);

        //2.传参赋值: fetch('模板',[参数数组])
        //3.对象赋值:
        // $this->view====View的对象
        $this->view->salary = 5000;

        return $this->view->fetch(); //不传参数,指的是默认模板 index@index/demo2
    }
}

运行实例 »

点击 "运行实例" 按钮查看在线实例

2.模板过滤与替换

2.1模板同上

2.2

实例

<?php
namespace app\index\controller;
use think\Controller;

class Index  extends Controller
{
   //模板过滤与替换
    public function demo3()
    {
        //tp51之前,直接删除了替换功能,采用config/template.php进行配置
        //将模板中的'xiaoming'替换成:小明
        
        $this->view->name = 'xiaoming';
        $this->view->salary = 8000;

        // $filter = function($content) {
        //  return str_replace('xiaoming', '小明', $content);
        // };

        // return $this->filter($filter)->fetch();
        return $this->filter(function($content) {
            return str_replace('peter', '', $content);
        })->fetch(); //为空就是过滤
    }
}

运行实例 »

点击 "运行实例" 按钮查看在线实例

3.模板动态布局

3.1模板header

实例

<style type="text/css">
	.header {
		width: 800px;
		height: 60px;
		margin: auto;
		background: wheat;
		text-align: center;
		line-height: 60px;
	}
</style>
<div class="header">网站头部</div>

运行实例 »

点击 "运行实例" 按钮查看在线实例

3.2模板footer

实例

<style type="text/css">
	.footer {
		width: 800px;
		height: 60px;
		margin: auto;
		background: wheat;
		text-align: center;
		line-height: 60px;
	}
</style>
<div class="footer">网站底部</div>

运行实例 »

点击 "运行实例" 按钮查看在线实例


3.3模板layout

实例

{include file="public/header" /}
{__TEXT__}
{include file="public/footer" /}

运行实例 »

点击 "运行实例" 按钮查看在线实例

3.4模板demo

实例

{//layout name="layout" /}
{//__NOLAYOUT__}
<style type="text/css">
	.main {
		width: 800px;
		height: 600px;
		margin: auto;
		background: lightgreen;
		text-align: center;
		line-height: 600px;
	}
</style>
<div class="main">主体内容</div>

运行实例 »

点击 "运行实例" 按钮查看在线实例

3.5

实例

<?php
namespace app\index\controller;
use think\Controller;

class Index  extends Controller
{
    //模板布局
    public function demo4()
    {
        /**
         * 一、全局配置
         * 1.config/template.php
         * 模板布局的配置
         * 'layout_on' => true, //开启模板布局
         * 'layout_name' => 'layout', //指定模板布局文件
         *
         * 二、模板标签进行配置
         * 1.不依赖于全局配置,在模板中直接用标签进行控制
         * 2.{layout name="布局模板名" /}
         * 3.关闭布局:{__NOLAYOUT__}
         *
         * 三、动态配置
         * 1.不需要再模板配置文件中进行任何配置
         * 2.不需要再当前模板中添加任何标签
         */
        //开启布局
        // $this->view->engine->layout(true);
        // $this->view->engine->layout('layout', '{__TEXT__}');
        // 关闭
        // $this->view->engine->layout(false);
        
        // return $this->view->fetch();

        return $this->view //调用视图对象
            ->engine //模板引擎对象
            ->layout(true) //开启模板布局
            ->fetch('index\demo4'); //渲染模板,模板表达式至少要给到控制器级别
    }
}

运行实例 »

点击 "运行实例" 按钮查看在线实例

4.模板继承

4.1模板base

实例

{//基础模板中只允许出现block标签}

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

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

{block name="course"}课程名称:{/block} <br>

{block name="name"}朱老师{/block}

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

{//在父模板中凡是写在block之外的内容在子模板中全部原样输出}

运行实例 »

点击 "运行实例" 按钮查看在线实例

4.2模板demo

实例

{extend name="base" /}

{//将父模板中的main区块进行重写}
{block name="main"}
	<h1 style="text-align: center">我是子模板的网站的主体部分</h1>
{/block}

{block name="course"}
	{__block__} PHP编程
{/block}

{//将父模板中的name区块删除}
{block name="name"}{/block}

{//在子模板中区块的顺序不重要}
{//在子模板中凡是写在block之外的内容全部忽略}
<a href="">12345</a>

运行实例 »

点击 "运行实例" 按钮查看在线实例

4.3

实例

<?php
namespace app\index\controller;
use think\Controller;

class Index  extends Controller
{
    //模板继承
    public function demo5()
    {
        /**
         * 1. view/base.html : 基础模板,供其他子模板进行继承
         * 2. base.html 内容全部要用标签{block进行定义}
         */
        
        return $this->view->fetch();
    }
}

运行实例 »

点击 "运行实例" 按钮查看在线实例


Correction status:Uncorrected

Teacher's comments:
Statement of this Website
The copyright of this blog article belongs to the blogger. Please specify the address when reprinting! If there is any infringement or violation of the law, please contact admin@php.cn Report processing!
All comments Speak rationally on civilized internet, please comply with News Comment Service Agreement
0 comments
Author's latest blog post