3.ThinkPHP入门---视图
视图:MVC三大组成部分,负责信息的展示和输出
1.视图的创建
创建的位置需要是在分组目录下的view目录下余控制器同名的目录中。
2.视图的展示
在smarty和tinkphp都是使用diaplay
$this->dispaly();
$this->display(‘模版文件名’);
$this->display(‘view目录下的目录名/模版文件名’);

3.变量分配
3.1变量分配(初级)
在实际开发的时候不仅仅只是展示模版这么简单,往往还需要展示数据,这个时候变量还在控制器的方法中,需要将数据传递至模版中并且展示,这个过程叫变量分配,在thinkphp中系统封装了一个变量分配的方法,方法为assign,具体语法如下:
$this->assign(‘模版中的变量名’,$php中的变量名);
例如:在TestController中的test方法中分配变量
public function test(){
$var=date('Y-m-d H:i:s',time());
$this->assign('var',$var);
$this->display();
}
Test.html如何获取变量值?方法如下:{$模版中的变量名},
即现在北京时间:{$var}
3.2变量输出(进阶)
简单变量输出:
一维数组输出:
二维数组输出:


对象输出:
对象在实例化之后一般会保存到一个变量中,这个变量也可以被分配到模版当中

3.变量分隔符
在tinkphp中默认的额变量左右分隔符是{},其是可以更改的

5.模版常量替换机制
在实际开发的时候会出现引入一些文件往往需要写复杂的路径,那么如何将复杂的路径简化,这个时候我们可以考虑模版常量替换机制
ThinkPHP中系统默认的几个常用常量:
__MODULE__//标识从域名后开始一直到分组结束的路由
__CONTROLLER__//标识从域名后开始一直到控制器结束的路由
__ACTION__//标识从域名后开始一直到方法结束的路由
__PUBLIC__//标识站点根目录下public目录的路由
__SELF__//标识从域名后开始一直到最后结束的路由(如果没有参数则与3内容相同)
在thinkphp中模版常量是通过模版内容替换机制来实现的,并非是常量的定义,替换机制可以查看行为文件/thinkphp/libraty/behavior/contentreplacebehavior.class.php,其模版实现的核心就是字符串替换
6.模版内容获取方法
1.在tinkphp中和display方法相似的方法叫fetch
$this->display();展示模版 $this-fetch();获取模版--有返回值
2.视图注释:
普通注释在html源代码中会被输出:<!--这是注释-->
Thinkphp中的模块注释:
行注释:{// 这是行注释}
快注释:{/*这是块注释*/}
7.系统变量
$Think.Server//获取服务器的相关信息
$Think.get//等价$_GET,获取get请求信息
$Think.post//等价$_POST,获取post请求信息
$Think.request//等价$_REQUEST,获取request请求信息
$Think.cookie//等价$_COOKIE,获取cookie请求信息
$Thin.config//等价$_CONFIG,获取ThinkPHP中所有配置文件的综合,若指定了元素则获取指定的配置,
语法格式:{$Think.get.id}

8.视图中使用函数
实际开发中有些模版不能直接使用,如在视图中展示时间戳需要通过遍历来处理格式,此时使用函数方式就相对容易。
8.1语法:{$变量|函数名1|函数名2=参数1,参数2}
8.2参数说明:|为变量修饰符
$模版变量
函数名1:标识需要使用的第一个函数,参数1,参数2标识函数2的参数
8.3案例1:

注意:当需要使用的函数只有一个参数并且参数是变量自身的时候###可省略
当需要使用的函数有多个参数,但是其第一个参数是变量自身的时候也可省略
关于函数名说明:函数名对应的函数必须是php内置函数或者是在函数库定义好的
案例2:定义一个字符串,截取其中前五个并转成大写{$str|substr=###,0,5|strtoupper}
9.默认值
语法:{$变量名|default=默认值}
10.运算符
+ - * / % ++ --
11.文件引入
将网站公共部分,如头部,底部单独存放在一个文件中,在后期使用的时候直接引入该部分,维护时只需维护一份代码即可
Thinkphp模版标签:<include file=’/admin/style.css’>

12.循环遍历
在thinkphp中系统提供了2个标签来实现数组在模版中的遍历
Volist foreach

13.if标签
<if conditon=’条件表达式’>
输出结果1
<else if condition=’条件表达式2’/>
输出结果2
<else/>
最后输出
案例:
public function test12(){
$day=date('N',time());
$this->assign('day',$day);
$this->display();
}
<body>
<if condition='$day==1'>
星期1
<elseif condition='$day==2'/>
星期2
<elseif condition='$day==3'/>
星期3
<elseif condition='$day==4'/>
星期4
<elseif condition='$day==5'/>
星期5
<elseif condition='$day==6'/>
星期6
<else/>
星期7
</if>
</body>
14.PHP标签
在模版中使用php的语法格式,模版中php标签Tinkphp支持两种形式
14.1.Php内置的php标签:<? php代码段?>
14.2.Thinkphp中:<php>代码段</php>
一般在视图中不写php标签,同时也不建议禁用php标签

3.ThinkPHP入门---视图的更多相关文章
- Thinkphp入门 五 —模型 (49)
原文:Thinkphp入门 五 -模型 (49) [数据库操作model模型] model 模型 数据库操作 tp框架主要设计模式:MVC C:controller 控制器 shop/Li ...
- Thinkphp入门 二 —空操作、空模块、模块分组、前置操作、后置操作、跨模块调用(46)
原文:Thinkphp入门 二 -空操作.空模块.模块分组.前置操作.后置操作.跨模块调用(46) [空操作处理] 看下列图: 实际情况:我们的User控制器没有hello()这个方法 一个对象去访问 ...
- Thinkphp入门 一 (45)
原文:Thinkphp入门 一 (45) 什么是框架? 就是一堆代码的集合,这些代码可以有变量.常量.函数.类等等.这些代码彼此紧密联系,彼此有合作关系.里边还有设计模式:MVC.单例.工厂等等. 为 ...
- Thinkphp入门 四 —布局、缓存、系统变量 (48)
原文:Thinkphp入门 四 -布局.缓存.系统变量 (48) [控制器操作方法参数设置] http://网址/index.php/控制器/操作方法 [页面跳转] [变量调节器] Smarty变量调 ...
- Thinkphp入门三—框架模板、变量(47)
原文:Thinkphp入门三-框架模板.变量(47) [在控制器调用模板] display() 调用当前操作名称的模板 display(‘名字’) 调用指定名字的模板文件 控制器调用模板四种方式 ...
- ThinkPHP框架视图详细介绍 View 视图--模板(九)
原文:ThinkPHP框架视图详细介绍 View 视图--模板(九) 视图也是ThinkPHP使用的核心部分: 一.模板的使用 a.规则 模板文件夹下[TPL]/[分组文件夹/][模板主题文件夹/]和 ...
- thinkPHP入门 一
简介 ThinkPHP是一个快速.简单的基于MVC和面向对象的轻量级PHP开发框架,遵循Apache2开源协议发布,从诞生以来一直秉承简洁实用的设计原则,在保持出色的性能和至简的代码的同时,尤其注重开 ...
- thinkPHP入门之二
thinkphp提供了很多便利的方法,因为php要记的东西太多了,而thinkphp极大简化了这些,让编写过程更加快速. 为了预防那些了解它的人胡乱玩耍,thinkphp提供一个函数_empty 它是 ...
- thinkPHP入门
什么是框架 框架就是一定结构的代码,框架提供一个开发web程序的基础架构以及常用的功能 代码,PHP框架的web程序开发拜倒了流水线上. php框架就是一定要按别人规定好的架构编写. php开发框架有 ...
随机推荐
- 创建一个类Person
创建一个类Person,包含以下属性:姓名(name).年龄(age).朋友(friends数组).问候(sayhi方法,输出问候语,例如:"你好!").交朋友(addFriend ...
- php知识点(基本上文档都有,只为方便记忆)
类型转换 (unset)转换为NULL (binary) 转换和 b 前缀转换支持为 PHP 5.2.1 新增 转换二进制 隐藏php后缀名 AddType application/x-httpd ...
- 【sqli-labs】 less26 GET- Error based -All you SPACES and COMMENTS belong to us(GET型基于错误的去除了空格和注释的注入)
看了下源码 所有的注释形式和反斜线,and,or都被了过滤掉了 单引号没有过滤 空格也被过滤了 http://localhost/sqli-labs-master/Less-26/?id=1' htt ...
- html 表单赋值 和 时间戳 转换
<script> window.onload = function () { var str; // console.log(@ViewBag.ID); $.post("/Ser ...
- Python字符串格式化--formate()的应用
1.简单运用字符串类型格式化采用format()方法,基本使用格式是:转自 <模板字符串>.format(<逗号分隔的参数>) 调用format()方法后会返回一个新的字符串, ...
- Day 17 time,datetime,random,os,sys,json,pickle
time模块 1.作用:打印时间,需要时间的地方,暂停程序的功能 时间戳形式 time.time() # 1560129555.4663873(python中从1970年开始计算过去了多少秒) 格式化 ...
- 【剑指Offer】49、把字符串转换成整数
题目描述: 将一个字符串转换成一个整数(实现Integer.valueOf(string)的功能,但是string不符合数字要求时返回0),要求不能使用字符串转换整数的库函数. 数值为0或者字 ...
- [luogu3244 HNOI2015] 落忆枫音(容斥原理+拓扑排序)
传送门 Description 给你一张 n 个点 m 条边的DAG,1 号节点没有入边.再向这个DAG中加入边 x→y ,求形成的新图中以 1 为根的外向树形图数 模 10^9+7 . Input ...
- Problem 16
Problem 16 pow(2, 15) = 32768 and the sum of its digits is 3 + 2 + 7 + 6 + 8 = 26.2的15次方等于32768,而这些数 ...
- eclipse中 使用maven搭建ssh项目 思路复习(含有pom.xml)
首先在web.xml中配置监听器 在服务器启动的时候 进行bean对象的创建(只会创建单例对象 dao service 多例对象action可不会创建 每个多例对象是不同的 创建了有什么意义呢 ...