【三十五】thinkphp之视图
1.模板定义
视图属于mvc中的v。一般是html结合php获取的数据提供给用户使用。
- 每个模板的文件都是独立的(文件名与控制器名称必须一样)
- 默认的模板文件规则是视图目录/[模板主题]控制器/操作名+模板后缀(http://localhost/basic_thinkphp/index.php/Home/User1/index)
//在controller目录下user控制器下index方法输入
//对应的目录为/Weibo/Home/View/User1/index.html
//渲染模版输出
$this->display();
在view目录下需存在user1/index.html.即可渲染出来
修改模板的一些配置.在common/conf/config.php中修改:
//修改模版的视图目录
'DEFAULT_V_LAYER' =>'View', //修改模版中的文件的后缀
'TMPL_TEMPLATE_SUFFIX'=>'.tpl', //用下划线代替目录层次
'TMPL_FILE_DEPR'=>'_', //User_index.tpl //设置外部的模版目录
'VIEW_PATH'=>'./Public/', //设置默认主题目录
'DEFAULT_THEME'=>'default',
在controller/usercontroller.class.php输入此行,即可切换主题.:(主题是你可以在配置文件中修改的)
// 切换主题
$this->theme('blue')->display();
2.赋值(assign)与渲染(display)
thinkphp提供了assign方法对模板变量赋值,无论哪种变量类型都统一使用assign赋值
//给模版传递一个变量
$this->assign('user', '蜡笔小新');
//模版中调用变量
{$user}
//PS:这个方法必须在 display()方法之前使用,保存变量正确传递。
渲染模板使用的是display方法.格式如下:
- display([模板文件],[字符编码],[输出类型])
- 如果不输入参数,目录是(当前模块/默认视图目录/当前控制器/当前操作.html)
//不传参数
// ./Weibo/Home/View/default/User/index.tpl
$this->display(); //修改默认模版
// ./Weibo/Home/View/default/User/add.tpl
$this->display('add'); //修改默认模版,目录加模版
// ./Weibo/Home/View/default/Bbb/add.tpl
$this->display('Bbb/add'); //修改默认模版,模块加目录加模版
// ./Weibo/Admin/View/default/Bbb/add.tpl
$this->display('Admin@Bbb/add'); //修改默认模版,主题加目录加模版
// ./Weibo/Home/View/blue/Bbb/add.tpl
$this->theme('blue')->display('Bbb/add'); //修改默认模版,自定义模版
// ./Template/Public/add.tpl
$this->display('./Template/Public/add.tpl'); //Template 和 Weibo 同级 //修改默认模版,指定编码和文件类型,一般不用填写,默认即可
$this->display('add', 'utf-8', 'text/xml')
3.模板地址
thinkphp封装了一个T函数,专门用于生成模板文件.格式如下:
- T([资源://][模块@][主题/][控制器/]操作,[视图分层]);
//输出当前模版地址
echo T();
//结合上面讲的所有定义方法来自定义模版:
echo T('Public/add')
echo T('Admin@index');
echo T('Admin@Public/add', 'Template');
//直接使用T函数输出
$this->display(T());
4.获取内容
如果需要获取模版的内容,可以使用 fetch()方法,这个方法的使用和 display()方法一致
//获取模版里的内容
$content = $this->fetch();
var_dump($content);
//通过内容再渲染输出
$this->show($content);
//PS:使用 fetch()方法获取内容,主要是为了可以处理和过滤更加复杂的内容。然后
处理后再由 show()方法输出。
【三十五】thinkphp之视图的更多相关文章
- NeHe OpenGL教程 第三十五课:播放AVI
转自[翻译]NeHe OpenGL 教程 前言 声明,此 NeHe OpenGL教程系列文章由51博客yarin翻译(2010-08-19),本博客为转载并稍加整理与修改.对NeHe的OpenGL管线 ...
- JAVA之旅(三十五)——完结篇,终于把JAVA写完了,真感概呐!
JAVA之旅(三十五)--完结篇,终于把JAVA写完了,真感概呐! 这篇博文只是用来水经验的,写这个系列是因为我自己的java本身也不是特别好,所以重温了一下,但是手比较痒于是就写出了这三十多篇博客了 ...
- Java进阶(三十五)java int与integer的区别
Java进阶(三十五)java int与Integer的区别 前言 int与Integer的区别从大的方面来说就是基本数据类型与其包装类的区别: int 是基本类型,直接存数值,而Integer是对象 ...
- Gradle 1.12用户指南翻译——第三十五章. Sonar 插件
本文由CSDN博客万一博主翻译,其他章节的翻译请参见: http://blog.csdn.net/column/details/gradle-translation.html 翻译项目请关注Githu ...
- SQL注入之Sqli-labs系列第三十四关(基于宽字符逃逸POST注入)和三十五关
开始挑战第三十四关和第三十五关(Bypass add addslashes) 0x1查看源码 本关是post型的注入漏洞,同样的也是将post过来的内容进行了 ' \ 的处理. if(isset($_ ...
- “全栈2019”Java多线程第三十五章:如何获取线程被等待的时间?
难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java多 ...
- Python进阶(三十五)-Fiddler命令行和HTTP断点调试
Python进阶(三十五)-Fiddler命令行和HTTP断点调试 一. Fiddler内置命令 上一节(使用Fiddler进行抓包分析)中,介绍到,在web session(与我们通常所说的se ...
- 第三百三十五节,web爬虫讲解2—Scrapy框架爬虫—豆瓣登录与利用打码接口实现自动识别验证码
第三百三十五节,web爬虫讲解2—Scrapy框架爬虫—豆瓣登录与利用打码接口实现自动识别验证码 打码接口文件 # -*- coding: cp936 -*- import sys import os ...
- centos shell脚本编程1 正则 shell脚本结构 read命令 date命令的用法 shell中的逻辑判断 if 判断文件、目录属性 shell数组简单用法 $( ) 和${ } 和$(( )) 与 sh -n sh -x sh -v 第三十五节课
centos shell脚本编程1 正则 shell脚本结构 read命令 date命令的用法 shell中的逻辑判断 if 判断文件.目录属性 shell数组简单用法 $( ) 和$ ...
- “全栈2019”Java第三十五章:面向对象
难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java第 ...
随机推荐
- netperf 网络性能测试
Netperf是一种网络性能的测量工具,主要针对基于TCP或UDP的传输.Netperf根据应用的不同,可以进行不同模式的网络性能测试,即批量数据传输(bulk data transfer)模式和请求 ...
- 前端框架VUE----webpack打包工具的使用
在这里我仅仅的是对webpack做个讲解,webpack这个工具非常强大,解决了我们前端很繁琐的一些工具流程繁琐的事情.如果感兴趣的同学,还是看官网吧. 中文链接地址:https://www.webp ...
- Python进阶【第五篇】函数式编程及某些特殊函数
一.函数式编程——Functional Programming 函数式=编程语言定义的函数+数学意义的函数 在计算机的层次上,CPU执行的是加减乘除的指令代码,以及各种条件判断和跳转指令,所以,汇编语 ...
- Android Camera2 预览,拍照,人脸检测并实时展现
https://www.jianshu.com/p/5414ba2b5508 背景 最近需要做一个人脸检测并实时预览的功能.就是边检测人脸,边在预览界面上框出来. 当然本人并不是专门做 ...
- 【javascript】对原型对象、原型链的理解
原型对象,原型链这些知识属于基础类知识.但是平时开发过程中也很少用到. 看网上的意思,原型链用于es5开发场景下的继承.es6有了类语法糖之后,就自带继承了. 通过理解,个人画了一张原型链解构的关系图 ...
- Java笔记 #03# HtmlUnit爬虫
存档留用 (= 存档留着备用) 爬的是一个开放的自动回复机器人 API 网站 http://i.itpk.cn/. 结构 大致如下: 我做的事情就是[输入文字,点击按钮,爬取内容],如上图所示. pa ...
- oracle 9i/10gR2所有版本下载地址
Oracle 9i Oracle9i Database Release 2 Enterprise/Standard/Personal Edition for Windows NT/2000/XP ht ...
- mysql引擎和事务
对于应用程序和用户来说,同样一张表的数据无论用什么引擎来存储,看到的数据都是一样的,只是不同的引擎在功能.占用空间大小.读取性能等方面可能有所差别. mysql最常用的存储引擎为Innodb.MyIS ...
- phpstorm激活大全--持续更新(支持2018最新版)
方法一. 通过Licence Server 激活PHPStorm(快速) 方法原理是通过搭建服务器激活,不过网上有许多搭建好的. http://idea.goxz.gq http://v2mc.net ...
- python简说(五)操作文件
f = open('users.txt',encoding='utf-8') #读文件的时候,必须存在在才可以读 文件对象,或者文件句柄res = f.read()print(res)f.close( ...