ThinkPHP5.0 模板

模板渲染

  1. 默认的视图目录是默认的模块下的view目录
  2. 渲染规则:调用 \think\View 类fetch方法
// [模板文件目录]/当前控制器名(小写+下划线)/当前操作名(小写).html
return $view->fetch();
// [模板文件目录]/当前控制器名(小写+下划线)/add.html
return $view->fetch('add');
return $view->fetch('user/add');

模板配置

// config.php 中配置
'template' => [
'layout_on' => true,
'layout_name' => 'layout',
// 模板引擎
'type' => 'think',
// 普通标签开始标记
'tpl_begin' => '<{',
// 普通标签结束标记
'tpl_end' => '}>'
]

控制器中变量赋值

$this->assgin('list', $list);

$view = new View();
$view->name = 'thinkphp';
return $view->fetch(); $this->fetch('view',[
'list' => $list
])

函数

// 加密
{$data.name|md5} // 时间
{$create_time|date="y-m-d",###} // 截取字符串
{$data.name|substr=0,3} // 多个函数操作过滤
{$name|md5|strtoupper|substr=0,3} // 默认值
{$user.nickname|default="这家伙很懒,什么也没留下"}

运算(三元)

{$status? '正常' : '错误'}
{$info['status']? $info['msg'] : $info['error']}
{$info.status? $info.msg : $info.error } {$varname.aa ?? 'xxx'}

内置标签循环

//Volist标签的name属性表示模板赋值的变量名称,因此不可随意在模板文件中改变。id表示当前的循环变量,可以随意指定

{volist name='dataname’ id ='value'}
{$value.id}
{/volist} // 如果需要分页,也可以再标签中操作,offset为开始条数 length为获取条数
{volist name="list" id="vo" offset="5" length='10'}
{$vo.name}
{/volist} // 还可以设置限制,mod 为偶数
{volist name="list" id="vo" mod="2" }
{eq name="mod" value="1"}{$vo.name}{/eq}
{/volist} // 还可以设置限制,empty为空是输出值,empty属性不支持直接传入html语法,但可以支持变量输出
{volist name="list" id="vo" empty="空空如也" }
{eq name="mod" value="1"}{$vo.name}{/eq}
{/volist} // foreach
{foreach name="list" item="vo"}
{$vo.id}:{$vo.name}
{/foreach} // for
{for start="开始值" end="结束值" comparison="" step="步进值" name="循环变量名" }

条件

比较标签
eq或者 equal 等于
neq 或者notequal 不等于
gt 大于
egt 大于等于
lt 小于
elt 小于等于
heq 恒等于
nheq 不恒等于 // switch
{switch name="变量" }
// 支持多个格式判断
{case value="gif|png|jpg"}图像格式{/case}
{case value="值1" break="0或1"}输出内容1{/case}
{case value="值2"}输出内容2{/case}
{default /}默认情况
{/switch} // if
{if condition="($name == 1) OR ($name > 100) "}
value1
{elseif condition="$name eq 2"/}
value2
{else /}
value3
{/if} // in
{in name="id" value="1,2,3"}
id在范围内
{/in}
{notin name="id" value="1,2,3"}
id不在范围内
{/notin} // between 变量的值可以是字符串或者数组,还可以支持系统变量。value只需要一个区间范围,也就是只支持两个值,后面的值无效
{between name="id" value="1,10"}
输出内容1
{/between}

ThinkPHP5.0 模板的更多相关文章

  1. thinkphp5.0 模板输出常用内容

    1.在模板获取session和cookie等全局变量 {$Think.session.user_id}//输出$_SESSION['user_id']变量 2.获取请求信息 {$Request.con ...

  2. thinkphp5.0 模板包含文件

    在index.html里包含layout.html:{include file=“layout”}它这里是以绝对路径查找所包含的文件,默认是view目录下 在这种情况下,要在在index.html里包 ...

  3. Thinkphp5.0 的视图view的模板布局

    Thinkphp5.0 的视图view的模板布局 使用include,文件包含: <!-- 头部 --> <div class="header"> {inc ...

  4. ThinkPHP5.0框架开发--第9章 TP5.0视图和模板

    ThinkPHP5.0框架开发--第9章 TP5.0视图和模板 第9章 TP5.0视图和模板 ===================================================== ...

  5. 高性能PHP框架thinkphp5.0.0 Beta发布-为API开发而设计

    ThinkPHP V5.——为API开发而设计的高性能框架 ThinkPHP5..0版本是一个颠覆和重构版本,采用全新的架构思想,引入了很多的PHP新特性,优化了核心,减少了依赖,实现了真正的惰性加载 ...

  6. thinkphp5.0无限极分类及格式化输出

    首先我们来看数据表 从上图中可以发现,中国下有贵州,北京两个子节点,而北京有天安门一个子节点,纽约的子节点是"纽约的子类". 从pid为0看出,中国和纽约是顶级节点. 因为贵州的p ...

  7. thinkphp5.0 微信公众号接入支付宝支付

    ---恢复内容开始--- 真是无力吐槽这个需求了,想骂客户,好端端的非要在微信公众号接入支付宝,都知道微信公众号是拒绝支付宝的,屏蔽了支付宝,所以在微信公众号接入支付宝的话就必须手动复制链接跳出微信内 ...

  8. thinkphp5.0和thinkphp3.2的区别不同之处

    先看目录结构: thinkphp 5.0的目录结构, 文档:https://www.kancloud.cn/manual/thinkphp5/118008 project 应用部署目录 ├─appli ...

  9. 贝云cms内容管理系统(thinkphp5.0开源cms管理系统)

    byCms包含文章,图片,下载,视频模型,基于thinkphp5.0.9,可无缝升级至thinkphp.1.0,是一套简单,易用的内容管理系统,旨在帮助开发者节约web应用后台开发时间和精力,以最快的 ...

随机推荐

  1. 利用Rsync同步工具上传、删除目标文件

    Rsync是文件备份工具,当然也可以当做传输工具,管理远程服务器的文件 上传 rsync -avzP --progress --port 9106 /path/.../指定文件 root@192.16 ...

  2. HTTP Post之multipart/form-data和application/x-www-form-urlencoded

    关于HttpPost,有这样两种可Post的数据载体,分别是MultipartEntity和UrlEncodedFormEntity,对这两者的共性和异性做如下解释和备忘: 共性: 1.都属于HTTP ...

  3. chrome浏览器开发者工具F12中某网站的sources下的源码如何批量保存?

    目录 chrome浏览器 开发者工具F12中某网站的sources下的源码如何批量保存 1. 常用保存Sources源码的两种方法 1.1单个文件 1.2 单个页面 2. 问题 3.解决方案 chro ...

  4. 10分钟实现Typora(markdown)编辑器

    本章主要内容: 介绍我们将在接下来的几章中构建的应用程序 配置我们的CSS样式表,使其看起来更像一个本机应用程序 回顾在Electron中主进程和渲染器进程之间的关系 为我们的主进程和渲染器进程实现基 ...

  5. spring 5.x 系列第7篇 —— 整合Redis客户端 Jedis和Redisson (xml配置方式)

    文章目录 一.说明 1.1 Redis 客户端说明 1.2 Redis可视化软件 1.3 项目结构说明 1.3 依赖说明 二.spring 整合 jedis 2.1 新建基本配置文件 2.2 单机配置 ...

  6. JAVA复习笔记02

    16.interface中的成员变量默认为public static final类型,方法只能是public(默认为public) 17.内部类访问外部类成员: Outer.this.num; 18. ...

  7. Java8新特性——lambda表达式.(案例:完全数分类)

    需求:输入一个数,判断其类型(完全数,过剩数,不足数) 完全数:自身之外所有因数和==自身 过剩数:自身之外所有因数和>自身 不足数:自身之外所有因数和<自身 package cn._3. ...

  8. Linux就该这么学---第一课 20190705

    要认真学习,认真完成作业,最主要是坚持,我感觉自己坚持这个能力欠缺,要主动改正. 还想说一句,以前我是20期学员,后面没有时间学习了,现在到22期了,我要坚持学习完成,坚持 坚持 坚持!!! 现在分享 ...

  9. Linux 中文件和文件夹获取 MySQL 权限(SELinux)

    今天在 Linux 系统上移动 MySQL 的数据库目录 配置如下: /etc/my.cnf [mysqld]datadir=/home/mysqlsocket=/var/lib/mysql/mysq ...

  10. 个人博客小案例(纯Django搭建)

    在看这篇文章的时候,必须有django基础,如果没有点击访问 一.环境配置 新建项目并做配置项目创建,创建APP并注册 创建模板并配置相应的路径,点击下载模板,配置方法点击访问 创建静态文件并配置,点 ...