博主信息
博文 55
粉丝 0
评论 1
访问量 52853
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
模板赋值及模板布局-2018年5月30日15点30
旺小舞的博客
原创
933人浏览过

模板赋值

关键字:assign('name',$name);//模板赋值  终极简化 ;         fetch('模板表达式')指定一个模板进行内容输出,以模块/view目录为根目录,模板表达式:模块@控制器/操作方法,return View::fetch('index@index/demo1',['name'=>$name]);

在controller下创建->view->index->demo1.html文件,与controller->Index.php->demo1()方法相对应

demo1/2.html

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


Index.php

<?php
namespace app\index\controller;
use think\facade\View;//相当于给视图类做了一个静态代理,降内部方法全部看成静态的进行调用

use think\Controller;

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

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

    	return $this->view->fetch();//index@index/demo2
    }

    //模板替换与过滤  过滤的方式模拟替换
    public function demo2()
    {
    	//tp51之前,直接删除了替换功能,采用config/template.php进行配置
    	
    	$this->view->name = 'hyman';
    	$this->view->salary =8000;
		//将模板中的hyman替换成:liu
		$filter = function($content){
			return str_replace('hyman','liu',$content);
		};

    	return $this->filter($filter)->fetch();
    }
}


创建:controller->view->public->header.html/footer.html                view->layout.html/base.html     view->index->demo4.html/demo5.html 分别对应动态布局和模板继承

模板动态布局:

layout.html

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

demo4.html

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

Index.php

 public function demo4()
{
         * 动态配置
    	 * 1,不需要在模板文件中做任何配置
    	 * 2,不需要在当前模板中添加任何标签 
    	 */
    	//开启布局
    	// $this->view->engine->layout(true);
    	//$this->view->engine->layout('layout','{__TEXT__}');
    	//关闭布局
    	// $this->view->engine->layout(false);

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

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

}

模板继承:

base.html

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

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



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

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

{block name="name"}小学生:{/block}


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

demo5.html

{extend name="base" /}

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

{block name="name"}{/block}


{//在子模板中写在block之外的的内容全部被忽略,父模板中会原样输出}
{block name="course"}
	<h2 style="text-align:center">{__block__}PHP编程</h2>
{/block}

Index.php

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









批改状态:合格

老师批语:
本博文版权归博主所有,转载请注明地址!如有侵权、违法,请联系admin@php.cn举报处理!
全部评论 文明上网理性发言,请遵守新闻评论服务协议
0条评论
作者最新博文
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号

  • 登录PHP中文网,和优秀的人一起学习!
    全站2000+教程免费学