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视图和模板的更多相关文章

  1. ThinkPHP5.0框架开发--第5章 TP5.0 控制器

    ThinkPHP5.0框架开发--第5章 TP5.0 控制器 第5章 TP5.0 控制器 ============================================== 上次复习 1.路 ...

  2. ThinkPHP5.0框架开发--第4章 TP5.0路由

    ThinkPHP5.0框架开发--第4章 TP5.0路由 第4章 TP5.0 路由 ================================================== 上次复习 1. ...

  3. ThinkPHP5.0框架开发--第3章 TP5.0 配置

    ThinkPHP5.0框架开发--第3章 TP5.0 配置 第3章 TP5.0 配置 ========================================================= ...

  4. ThinkPHP5.0框架开发--第1章 Tp5.0安装

    ThinkPHP5.0框架开发--第1章 Tp5.0安装 第1章 Tp5.0 安装 ======================================================== 今 ...

  5. ThinkPHP5.0框架开发--第2章 TP5.0架构

    ThinkPHP5.0框架开发--第2章 TP5.0架构 第2章 TP5.0架构 ================================================== 上次复习 1.如 ...

  6. ThinkPHP5.0框架开发--第11章 TP5.0 杂项

    ThinkPHP5.0框架开发--第11章 TP5.0 杂项 第11章 TP5.0 杂项 =============================================== 今日学习 1. ...

  7. ThinkPHP5.0框架开发--第10章 TP5.0验证器

    ThinkPHP5.0框架开发--第10章 TP5.0验证器 第10章 TP5.0验证器 ======================================= 今日学习 1.验证器 1) 控 ...

  8. ThinkPHP5.0框架开发--第8章 TP5.0 模型

    ThinkPHP5.0框架开发--第8章 TP5.0 模型 第8章 TP5.0 模型 ================================================= 今日学习 1. ...

  9. ThinkPHP5.0框架开发--第7章 TP5.0数据库操作

    ThinkPHP5.0框架开发--第7章 TP5.0数据库操作 第7章 TP5.0数据库操作 ===================================================== ...

随机推荐

  1. 初识cocos2dx——入门第一篇

    享受"啪"的按下Enter的快感. (by云风) cocos2dx是不是个toy引擎,不同的人有不同的看法.可是你不得不承认它非常受欢迎.好多非常火的手游使用的就是cocos2dx ...

  2. c语言数组小谈

    #include <stdio.h> #include <stdlib.h> #define N 5 int main() { double score[5]; int i; ...

  3. 当安装了ubuntu操作系统怎么也调用不出中文输入法时,可以用以下方式尝试解决。

    卸载 fcitx sudo apt-get remove fcitx 重启 sudo reboot 重新安装 fcitxsudo apt-get isntall fcitx 安装拼音输入法sudo a ...

  4. c#经典书籍

    1.c#本质论 讲的很清楚,通俗易懂,且比较深入. 2.WPF编程宝典.ASP.NET MVC高级编程. 界面类图书 3.Microsoft.NET企业级应用架构设计 框架类图书 4.c#深入详解

  5. 洛谷P1291 [SHOI2002]百事世界杯之旅(期望DP)

    题目描述 “……在2002年6月之前购买的百事任何饮料的瓶盖上都会有一个百事球星的名字.只要凑齐所有百事球星的名字,就可参加百事世界杯之旅的抽奖活动,获得球星背包,随声听,更克赴日韩观看世界杯.还不赶 ...

  6. 关于在bootstrap的tab栏中渲染echats图表,切换tab时echats不显示问题

    在开发过程中遇到这样个问题: 利用bootstrap中的tab栏,每当点击tab栏的导航时,echats仅仅只渲染第一个tab的内容,切换tab时,echats图表不显示. 其html代码为: < ...

  7. surfaceView实现拍照功能

    1.布局中只有一个SurfaceView和Button,初始SurfaceView通过surface.getHolder获得SurfaceHolder类 SurfaceView sfv= (Surfa ...

  8. iOS开发者账号证书配置及相关工作

    申请到开发者账号,肯定要先配置一下才可以使用,这主要是iOS证书及配置文件: 以下这篇文章写得比较全面,故不再累赘,需要的同学可以看一下: iOS开发证书与配置文件的使用

  9. php 生成不重复的随机字符串

    md5(uniqid(md5(microtime(true)),true))

  10. Thingworx SDK开发自定义Widget

    Thingworx自带的图表数量有限,样式也很有限,在echarts上看到了这样一个非常简单的图表,下面将做一个简单的静态引入示范 首先创建Thingworx项目 然后右键ui新建widget 自动生 ...