我们将要学习一下 ThinkPHP 视图,视图是 Web 的可见内容,一般是 HTML
结合 PHP 获取的数据提供给用户使用的部分,属于 MVC 中的 V

一. 模版定义  

  默认的模版文件定义规则:视图目录/[模版主题/]控制器名/操作名+模版后缀

可以设置相关的配置来更改这些设置:红框标出的位置为修改的位置 

//修改模版的视图目录
'DEFAULT_V_LAYER' =>'Template',

//修改模版中的文件的后缀
'TMPL_TEMPLATE_SUFFIX'=>'.tpl'

//用下划线代替目录层次,不用创建目录,而是用_链接的目录文件名称
'TMPL_FILE_DEPR'=>'_',

//设置外部的模版目录
'VIEW_PATH'=>'./Public/',

默认:

修改后:

//设置默认主题目录
'DEFAULT_THEME'=>'default',

//切换主题
$this->theme('blue')->display();

二、赋值和渲染

赋值:

 //给模版传递一个变量
$this->assign('user', '蜡笔小新');
//模版中调用变量
{$user}

渲染:

渲染模版输出使用的是 display 方法,有三个可选参数:
display([模版文件][,字符编码][,输出类型]);

 //不传参数
$this->display();
./Weibo/Home/View/default/User/index.tpl
//修改默认模版
$this->display('add');
./Weibo/Home/View/default/User/add.tpl
//修改默认模版,目录加模版
$this->display('Bbb/add');
./Weibo/Home/View/default/ Bbb /add.tpl
//修改默认模版,模块加目录加模版
$this->display('Admin@Bbb/add');
./Weibo/ Admin /View/default/ Bbb /add.tpl
//修改默认模版,主题加目录加模版
$this->theme('blue')->display('Bbb/add');
./Weibo/Home/View/ blue/ / Bbb /add.tpl
//修改默认模版,自定义模版
$this->display('./Template/Public/add.tpl');
./ Template/ / Public/ add.tpl //Template 和 Weibo 同级
//修改默认模版,指定编码和文件类型,一般不用填写,默认即可
$this->display('add', 'utf-8', 'text/xml');

如果报这种错,不要被其迷惑;其实就是相当于    ./Template/Public/add.tpl.html

./WeiBo/Home/View/./Template/Public/add.tpl.html

三. 模版地址  T(),专门用于生成模版文件

T([资源://][模块@][主题/][控制器/]操作,[视图分层]);

和display()的参数有点相似,但是更高级。可以结合这个方法来实现模版目录的切换

四.获取模版内容----- fetch()方法

 //获取模版里的内容
$content = $this->fetch();
var_dump($content);
//通过内容再渲染输出
$this->show($content);

这种获取模版所有代码(以字符串的形式),处理之后再渲染输出还是很强大的

掌握Thinkphp3.2.0----视图的更多相关文章

  1. Thinkphp5.0 视图view取值

    Thinkphp5.0 视图view取值 <!-- 获取控制器传递的变量 --> <li>{$age}</li> <!-- 获取服务器的信息 --> & ...

  2. ThinkPHP5.0框架开发--第9章 TP5.0视图和模板

    ThinkPHP5.0框架开发--第9章 TP5.0视图和模板 第9章 TP5.0视图和模板 ===================================================== ...

  3. [译]ASP.NET Core 2.0 视图引擎

    问题 如何在ASP.NET Core 2.0中使用Razor引擎来创建视图? 答案 新建一个空项目,修改Startup.cs,添加MVC服务和请求中间件: public void ConfigureS ...

  4. [译]ASP.NET Core 2.0 视图组件

    问题 如何在ASP.NET Core 2.0中使用视图组件? 答案 新建一个空项目,修改Startup类并添加MVC服务和中间件: public void ConfigureServices(ISer ...

  5. .net core 3.0视图动态编译

    之前在使用Visual Studio 2019的时候,就发现asp.net 3.0中没有cshtml动态编译的功能了:也就是说,如果改了cshtml,刷新页面不会立即生效,而是要重新编译一次才行. 这 ...

  6. thinkphp5.0学习(九):TP5.0视图和模板

    原文地址:http://blog.csdn.net/fight_tianer/article/details/78602711 一.视图 1.加载页面 1.继承系统控制器类 return $this- ...

  7. 在Asp.Net Core MVC 3.0 视图运行时编译

    在正常情况下,视图在生成的时候就会变为 xxx.Views.dll,在开发的时候,这样很不方便,因为很多的时候,我们只是修改一个样式,调整一些JavaScript代码,这个时候要把项目调试暂停下来,生 ...

  8. 【Flask】 python学习第一章 - 2.0 视图方式和返回值

    路由参数与请求方式制定   ALT+回车 pycharm 快速导包  demo3  指定访问地址  与请求方式  #   给路由传入参数 使用尖括号 ,视图函数需要接收参数 @app.route(&q ...

  9. 学习 yii2.0——视图之间相互包含

    布局 首先创建一个布局文件simple.php,路径是在views/layout/目录下. <p>this is header</p> <?= $content ?> ...

  10. 4.ASP.NET MVC 5.0 视图之模型绑定

    大家好,这篇文章,我将向大家介绍ASP.NET MVC的模型视图绑定,ASP.MVC的模型绑定分为两种:一种是动态绑定[Dynamic Binding];还有一种就是强类型绑定[Strongly ty ...

随机推荐

  1. BZOJ 1770: [Usaco2009 Nov]lights 燈

    Description 一个图,对一个点进行操作会改变这个点及其相邻的点的状态,问全部变成黑色至少需要几次.数据保证有解. Sol Meet in middle. 我一开始写个高斯消元,发现有两个点过 ...

  2. Linq查询表达式

    目录 1. 概述 2. from子句 3. where子句 4. select子句 5. group子句 6. into子句 7. 排序子句 8. let子句 9. join子句 10. 小结 1. ...

  3. user initialization list vs constructor assignment

    [本文连接] http://www.cnblogs.com/hellogiser/p/user_initialization_list.html [分析] 初始化列表和构造函数内的赋值语句有何区别? ...

  4. 出现个Expression(str != NULL)

    CPrimerPlus的11章复习题10:编写个函数,其参数为一个字符串指针,返回一个指针,返回的指针指向字符串中第一个空格的位置(如果没有空格就返回空指针) #include <stdio.h ...

  5. mysql触发器,答题记录表同步教学跟踪(用户列表)

    aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAABVQAAAOOCAIAAABgEw4AAAAgAElEQVR4nOy92VcT27r/zX+xLtflvt

  6. Xshell5连接虚拟机出现连Could not connect to '192.168.47.128' (port 22): Connection failed,解决办法

    该日记写于2016年11月28日.在用Xshell5连接ubuntu虚拟OS时一直连接不上.出现这种情况的原因可能很多,有像百度上面说的没有关闭linux的防火墙,没有启动linux的ssh服务.但这 ...

  7. AngularJS 模块

    模块定义了一个应用程序. 模块是应用程序中不同部分的容器. 模块是应用控制器的容器. 控制器通常属于一个模块. 你可以通过 AngularJS 的 angular.module 函数来创建模块: &l ...

  8. 与你相遇好幸运,Sailsjs查询

    sailsjs 原生查询 ------------------------------------- Lands.native(function(err, collection) { if (err) ...

  9. Android 配置问题

    安装好后需要更新

  10. WCF服务承载(笔记)

    自托管(也做自承载) 承载 WCF 服务最灵活.最便捷的方法就是进行自承载.要能够自承载服务,必须满足两个条件.第一,需要 WCF 运行时:第二,需要可以承载 ServiceHost 的托管 .NET ...