ThinkPHP5.0框架开发--第9章 TP5.0视图和模板
ThinkPHP5.0框架开发--第9章 TP5.0视图和模板
第9章 TP5.0视图和模板
========================================================================
今日学习
1、视图
a) 加载页面
1、继承系统控制器类
return $this->fetch(参数1,参数2,参数3,参数4);
参数1(字符串): 模板渲染
参数2(数组): 模板赋值
参数3(数组): 模板替换
参数4(数组):
2、使用助手函数
// return view();
# view的参数与fetch相同
3、使用view类 (不建议)
$view=new View();
return $view->fetch();
b) 模板赋值
1、控制器类中的assign方法
// $this->assign('name',$name);
// $this->assign('city',$city);
// 加载页面
// return view();
2、通过fetch方法
// return $this->fetch('',['name'=>$name,'city'=>$city]);
3、助手函数
// return view('',['name'=>$name,'city'=>'西安']);
4、对象赋值
$this->view->name="浩哥";
$this->view->city="临汾";
return view();
c) 模板替换
1、配置文件更改(全局替换)
// 视图输出字符串内容替换
'view_replace_str' => [
'__HOMES__'=>'/static/home/public',
'__ADMINS__'=>'/static/admin/public',
],
2、部分替换
1、fetch 方法
return $this->fetch('',[],['__HOMES__'=>'/static/home/public']);
2、view 函数
return view('',[],['__HOMES__'=>'/static/home/public']);
d) 模板渲染
1、默认加载当前模块 当前控制器 当前方法对应的页面
// return $this->fetch();
2、加载当前模块 当前控制器下的 用户定义页面
// return $this->fetch('jiazai');
3、加载当前模块 User控制器 jiazai页面
return $this->fetch('User/jiazai');
2、模板
1、模板标签
1、普通标签
// 模板引擎普通标签开始标记
'tpl_begin' => '<{',
// 模板引擎普通标签结束标记
'tpl_end' => '}>',
<h2>{$str}</h2>
2、标签库标签
// 标签库标签开始标记
'taglib_begin' => '{',
// 标签库标签结束标记
'taglib_end' => '}',
{for start="1" end="10"}
{$i}
{/for}
2、输出变量
1、字符串
$this->assign("str","TP5.0 非常简单非常适合初学者");
<h2>{$str}</h2>
2、数组
$data=[
'name'=>'张三',
'age'=>18,
'sex'=>'妖'
];
$this->assign("data",$data);
<h2>{$data['name']}</h2>
<h2>{$data.age}</h2>
3、使用函数
1、竖线
<h2>{$pass|md5}</h2>
<!-- <h2><?php echo md5($pass); ?></h2> -->
<h2>{$time|date="Y-m-d H:i:s",###}</h2>
<!-- <?php echo date("Y-m-d H:i:s",$time);?> -->
<h2>{$pass|md5|strtoupper|substr=0,10}</h2>
<!-- <h2><?php echo substr(strtoupper(md5($pass)),0,10); ?></h2> -->
2、冒号开始
<h2>{:md5($pass)}</h2>
<h2>{:date('Y-m-d H:i:s',$time)}</h2>
4、默认值
<h2>{$name|default="小云"}</h2>
<h2><?php echo (isset($name) && ($name !== '')?$name:"小云"); ?></h2>
5、三元运算符
<h2>{$status?'正常':'错误'}</h2>
<h2>{$status>2?'正常':'错误'}</h2>
<h2><?php echo !empty($status) && $status>2?'正常':'错误'; ?></h2>
6、运算符
<h2>{$a}+{$b}={$a+$b}</h2>
<h2>{$a}-{$b}={$a-$b}</h2>
<h2>{$a}*{$b}={$a*$b}</h2>
<h2>{$a}/{$b}={$a/$b}</h2>
<h2>{$a}%{$b}={$a%$b}</h2>
<h2>{$a++}</h2>
<h2>{$b--}</h2>
7、原样输出
{literal}
<h2>hello {$name}</h2>
{/literal}
8、系统变量
1、系统变量
支持输出 $_SERVER 、 $_ENV 、$_POST 、$_GET 、$_REQUEST 、 $_SESSION 和$_COOKIE变量。
<h1>{$_GET['id']}</h1>
<h1>{$Think.get.id}</h1>
<h1>{$_SERVER['HTTP_HOST']}</h1>
<h1>{$Think.SERVER.http_host}</h1>
2、常量输出
# 常量详见附录
<h1>{$Think.const.app_path}</h1>
<h1>{$Think.app_path}</h1>
<h1>{$Think.ds}</h1>
<h1>{$Think.think_path}</h1>
<h1>{$Think.IS_WIN}</h1>
<h1>{$Think.THINK_VERSION}</h1>
3、配置文件输出
# 常看配置文件
<h2>{$Think.config.app_namespace}</h2>
<h2>{$Think.config.default_lang}</h2>
9、模板注释
<h1>{//$_GET['id']}</h1>
<h1>{/*$Think.get.id*/}</h1>
10、包含文件
{include file="Public/header"}
{include file="Public/footer,Public/footer"}
11、模板布局
1、在视图目录下新建文件 layout.html
(C:\AppServ\www\tp5\application\admin\view)
2、在layout.html页面中
将所有的公共页面保留,非公共页面使用{__CONTENT__}替代
# {__CONTENT__} 只能存在一个
3、页面中如何书写
# 引入模板布局
{layout name="layout"/}
# 非公共区域内容
<!-- 内容 -->
<div class="col-md-10">
<div class="jumbotron">
<img src="__ADMINS__/img/4.jpg"height="310px" width="100%" alt="">
<h2>联想 后台管理系统</h2>
<p>开发者 : 赵丰泰</p>
</div>
</div>
12、模板继承
1、在视图目录下新建base.html
2、在base.html中对页面进行分割
<div class="container">
{block name="nav"}{/block}
<div class="row body">
{block name="menu"}{/block}
{block name="main"}{/block}
</div>
</div>
3、使用继承
{extend name="base" /}
{block name="nav"}
{include file="public/nav" /}
{/block}
{block name="main"}
<div class="jumbotron">
<h2>联想 后台管理系统</h2>
<p>开发者 : 赵丰泰</p>
</div>
{/block}
13、内置标签
1、volist循环
name 需要遍历的数据
id 类似于foreach中 value
offset 截取数据起始位置
length 截取数据的个数
mod 奇偶数
empty 数据为空的使用
key 编号
2、foreach循环
name 需要遍历的数据
item 类似于foreach中的value
key 类似于foreach中的key
{foreach name="data" item="val" key="abc"}
<p> {$abc} {$val.id} {$val.name}</p>
{/foreach}
3、for循环
start 开始值
end 结束值
comparison 比较条件
step 步数
name 循环变量名 默认 i
{for start="0" end="10" comparison="elt" step="2" name="abc"}
<p>{$abc}</p>
{/for}
{for start="10" end="0" comparison="gt" step="-1"}
<p>{$i}</p>
{/for}
4、比较标签
{eq name="a" value="11"}正确{/eq}
{neq name="a" value="11"}正确{/neq}
{lt name="a" value="11"}正确{/lt}
{gt name="a" value="11"}正确{/gt}
{egt name="a" value="11"}正确{/egt}
{elt name="a" value="11"}正确{/elt}
{heq name="a" value="11"}正确{/heq}
{nheq name="a" value="11"}正确{/nheq}
5、if
{if condition="$a eq $b"}
<p>a和b数值相等</p>
{else /}
<p>a和b数值不相等</p>
{/if}
6、switch
{switch name="week"}
{case value='1'}周一{/case}
{case value='2'}周二{/case}
{default /} 周日
{/switch}
7、in 和notin比较类似
{in name="week" value="0,1,2,3,4,5,6"}
合法的数据
{else /}
不合法数据
{/in}
8、between 和 notbetween
{between name="week" value="0,6"}
合法数据
{else/}
非法数据
{/between}
9、原生PHP
{php}
echo "123";
{/php}
<?php
echo "456";
?>
10、嵌套使用
ThinkPHP5.0框架开发--第9章 TP5.0视图和模板的更多相关文章
- ThinkPHP5.0框架开发--第5章 TP5.0 控制器
ThinkPHP5.0框架开发--第5章 TP5.0 控制器 第5章 TP5.0 控制器 ============================================== 上次复习 1.路 ...
- ThinkPHP5.0框架开发--第4章 TP5.0路由
ThinkPHP5.0框架开发--第4章 TP5.0路由 第4章 TP5.0 路由 ================================================== 上次复习 1. ...
- ThinkPHP5.0框架开发--第3章 TP5.0 配置
ThinkPHP5.0框架开发--第3章 TP5.0 配置 第3章 TP5.0 配置 ========================================================= ...
- ThinkPHP5.0框架开发--第1章 Tp5.0安装
ThinkPHP5.0框架开发--第1章 Tp5.0安装 第1章 Tp5.0 安装 ======================================================== 今 ...
- ThinkPHP5.0框架开发--第2章 TP5.0架构
ThinkPHP5.0框架开发--第2章 TP5.0架构 第2章 TP5.0架构 ================================================== 上次复习 1.如 ...
- ThinkPHP5.0框架开发--第11章 TP5.0 杂项
ThinkPHP5.0框架开发--第11章 TP5.0 杂项 第11章 TP5.0 杂项 =============================================== 今日学习 1. ...
- ThinkPHP5.0框架开发--第10章 TP5.0验证器
ThinkPHP5.0框架开发--第10章 TP5.0验证器 第10章 TP5.0验证器 ======================================= 今日学习 1.验证器 1) 控 ...
- ThinkPHP5.0框架开发--第8章 TP5.0 模型
ThinkPHP5.0框架开发--第8章 TP5.0 模型 第8章 TP5.0 模型 ================================================= 今日学习 1. ...
- ThinkPHP5.0框架开发--第7章 TP5.0数据库操作
ThinkPHP5.0框架开发--第7章 TP5.0数据库操作 第7章 TP5.0数据库操作 ===================================================== ...
随机推荐
- 网页爬虫框架jsoup介绍
序言:在不知道jsoup框架前,因为项目需求.须要定时抓取其它站点上的内容.便想到用HttpClient方式获取指定站点的内容.这样的方法比較笨,就是通过url请求指定站点.依据指定站点返回文本解析. ...
- c++面向对象程序设计 谭浩强 第五章答案
1: #include <iostream> using namespace std; class Student {public: void get_value() {cin>&g ...
- python中数字的排序
lst = [2,22,4,7,18]for j in range(len(lst)): #记录内部排序的次数 i = 0 while i < len(lst)-1: if lst[i] > ...
- windows及git常用命令
windows常用命令: 创建文件夹:md 文件夹名 创建空的文件:type nul>文件名 创建有内容文件:echo "内容">文件名 查看文件内容:type +文件 ...
- js点击时关闭该范围下拉菜单之外的菜单
$(function(){ $(document).bind("click",function(e){ //id为menu的是菜单 if($(e.target).closest(& ...
- html5中canvas(2)
1.绘制图片(drawImage)(重点) 1.1 基本绘制图片的方式 context.drawImage(img, x, y); 参数: img 可以为:图片.视频或者canvas画布 x,y 绘制 ...
- Broadcast Receiver广播接收器
1.概述 广播接收器不仅能接受来自系统的内容,也可以接受来自其他app的内容.广播分为标准广播和有序广播. 2.标准广播 一种完全异步执行的广播,在广播发出之后几乎所有的广播接收器都在同一时刻接受到广 ...
- CDR X6打了3折,再送魔镜插件,是真的么?
明人不说暗话,我.要.来.个.小.资.讯. CDR X6打了3折,再送魔镜插件,是真的么? 先来说说CorelDRAW,CorelDRAW众所周知,软件的确不便宜啊,对于个人来说,相当于一个高配苹 ...
- Qwiklab'实验-DynamoDB, Redshift, Elasticsearch'
title: AWS之Qwiklab subtitle: 4. Qwiklab'实验-Amazon DynamoDB, Amazon Redshift, Elasticsearch Service' ...
- day05-3 初步了解数据类型
目录 数据类型介绍 数字类型 整形(int) 浮点型(float) 字符串 列表 字典 布尔值 数据类型介绍 不同的数据会有不同的数据类型 为了定义不同的数据,我们Python中提供了下述几个数据类型 ...