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标签

时间: 2024-08-04 15:19:59

3.ThinkPHP入门---视图的相关文章

Thinkphp入门 二 —空操作、空模块、模块分组、前置操作、后置操作、跨模块调用(46)

原文:Thinkphp入门 二 -空操作.空模块.模块分组.前置操作.后置操作.跨模块调用(46) [空操作处理] 看下列图: 实际情况:我们的User控制器没有hello()这个方法 一个对象去访问这个类不存在的方法,那么它会去访问”魔术方法__call()” 用户访问一个不存在的操作—>解决:给每个控制器都定义个_empty()方法来处理 第二个解决方法:定义一个空操作 [空模块处理] 我们使用一个类,但是现在这个类还没有被include进来. 我们可以通过自动加载机制处理__autoloa

Thinkphp入门 五 —模型 (49)

原文:Thinkphp入门 五 -模型 (49) [数据库操作model模型] model  模型  数据库操作 tp框架主要设计模式:MVC C:controller   控制器   shop/Lib/Action/具体控制器 V:view       视图     shop/Tpl/分组/模板文件 M:model      数据模型  shop/Lib/Model/具体模型 [创建模型] 创建的原则:一个数据表对应一个数据模型 创建模型: 当出现以下信息,说明我们的数据库没有配置用户名和密码

Thinkphp入门 一 (45)

原文:Thinkphp入门 一 (45) 什么是框架? 就是一堆代码的集合,这些代码可以有变量.常量.函数.类等等.这些代码彼此紧密联系,彼此有合作关系.里边还有设计模式:MVC.单例.工厂等等. 为什么学习框架? 1. 我们全部精力都可以集中在业务层次,可以节约60%左右的工作量 2. 这个功能体可以帮组我们快速.稳定.高效搭建程序系统 3. 系统的健壮.维护.灵活.适应客户需求方面得到大大加强 成熟框架 1  zendFramework  : 官方框架.重量 2  Yii:OOP   重量

Thinkphp入门三—框架模板、变量(47)

原文:Thinkphp入门三-框架模板.变量(47) [在控制器调用模板] display()   调用当前操作名称的模板 display(‘名字’)  调用指定名字的模板文件 控制器调用模板四种方式: [在控制器给模板传递变量] 在smarty里边给模板传递变量信息 $smarty -> assign(变量名称,值); 在tp框架里边同样适用assign()给模板传递变量信息 ThinkPHP的模板引擎的左右标记: ThinkPHP/Lib/ Behavior/ ParseTemplateBe

Thinkphp入门 四 —布局、缓存、系统变量 (48)

原文:Thinkphp入门 四 -布局.缓存.系统变量 (48) [控制器操作方法参数设置] http://网址/index.php/控制器/操作方法 [页面跳转] [变量调节器] Smarty变量调节器 TP变量调节器:普通的php函数 (count  strlen   str_replace) 定义:前者的输出,是后者的输入 [子模板包含] 当前模块彼此包含 <include  file=”模板名称”  /> [使用布局layout] 1. 开启布局,配置变量信息config.php 2.

ThinkPHP中视图模型详解.

很多TP的新手对于模型中的视图模型不甚了解,官方虽然有详细手册,但是对于初学者来说还是比较难以理解! 先简单说一下视图模型所能实现的功能,基本就是主表与副表之间各个字段的关联问题,实现多表关联查询,相对于使用原生SQL语句来说,着实是简单不少. 首先在数据表初始化的时候,用的不是传统的M('User'),在视图模型中使用的是D('UserView'),如下图: 需要主要的是几个单词的首字母大写. 之后在Lib/Model目录中新建名为XXXViewModel.class.php(XXX为任意控制

ThinkPHP框架视图详细介绍 View 视图--模板(九)

原文:ThinkPHP框架视图详细介绍 View 视图--模板(九) 视图也是ThinkPHP使用的核心部分: 一.模板的使用 a.规则 模板文件夹下[TPL]/[分组文件夹/][模板主题文件夹/]和模块名同名的文件夹[Index]/和方法名同名的文件[index].html(.tpl) -->更换模板文件的后缀名(修改配置文件) 'TMPL_TEMPLATE_SUFFIX'=>'.tpl',//更改模板文件后缀名,默认是html b.修改模板文件目录层次 Tpl/Index/index.ht

ThinkPHP入门--后盾视频

1.使用ThinkPHP基础知识: PHP OOP面向对象编程思想 MVC设计模式 2.安装环境 LAMP:Linux + Apache + MySQL + PHP WAMP:Windows + Apache + MySQL + PHP windows安装集成环境:Wampserver 3.ThinkPHP下载 核心包 只包括运行thinkphp框架所需的运行文件,不包括扩展文件如文件上传类.图像处理类.验证码类.cookie session类 完整包 ThinkPHP入门--后盾视频

ThinkPHP之视图模版的使用

用户发起一个请求后,服务器应该返回一个页面,而页面是由我们的视图层来控制的. 一.修改控制器 <?php namespace Home\Controller; use Think\Controller; class IndexController extends Controller { public function index(){ ........... } public function sayHello(){ $this->display(); } } 我们在sayHello()中调