ThinkPHP 5.0--基础篇(视图和模版)

ThinkPHP 5.0--基础篇****(视图和模版)

一、视图view

i. 主要展示界面 可以接受用户输入等操作 通常是一个html页面

ii. 助手函数 view()

image.png
image.png

如果没有对模版进行配置(没有在配置文件中修改 )默认调用 当前模块/view/当前控制器/当前方法名.html

  1. view() 传递一个参数之后 return view(‘a’) ;
image.png
  1. 传递一个带路径的参数 return view(‘config/a’) ;
image.png
  1. 传递路径 ./ return view(‘./a.html’) ; public/index.php入口文件 ./同级 此种写法 必须加上后缀 .html
image.png
  1. View()助手函数 传递两个参数
image.png
  1. view()助手函数的第三个参数 替换
image.png
  1. 总结:使用助手函数很方便 但是有隐患 如 同名函数覆盖 一些配置失效等等

iii. return $this->fetch() 传递三个参数 使用方法同上 (use think\Controller) extends Controller

image.png

iv. 使用$this->assign(‘’,’’) 传递变量

image.png

v. $this->display(‘串’) 与模版没有关系

$this->assign(‘a’,’123’) ; $this->fetch(‘index.html’) 将变量传递到模版index.html

image.png

vi. $this->assign(‘a’,’123’) ; 也可以向$this->display(‘字符串{$a}’)中传递变量

二、模版变量输出 替换 赋值

i. 经过php编译器解析 模版文件最终 编译成.php文件 输出 runtime/temp

image.png
image.png

ii. 模版语法 {} 以花括号开始结束标记 惯例配置(thinkphp/convention.php) ---【详情参见 配置篇】

image.png
  1. 拷贝到应用配置文件中 测试 (conf/config.php)
image.png
  1. 配置这两个选项的场景: 程序中使用了 Vue.js|AngularJS|Angular2...这样的前端框架 很有可能和模版冲突 就需要修改此处的 开始 结束标记

iii. 变量输出---模版中{$a} 变量和开始|结束标记之间 不能有空格{ $a }

image.png
image.png
image.png
image.png

iv. 变量赋值---向模版文件中输出变量

  1. fetch(‘’,[])的第二个参数 数组类型
image.png
  1. assign(‘’,’’) key=>value类型
image.png
  1. view方法 继承Controller之后 key=>value
image.png
  1. share静态方法 ThinkPHP5.0.4 之后
image.png
  1. 上述四种方法 可同时有效

v. 替换

  1. fetch(‘’,[],[‘ABC’=>’页面上的ABC替换成此内容’])第三个参数

  2. 修改配置文件 thinkphp/convention.php

    // 视图输出字符串内容替换

'view_replace_str' => [],

image.png

a) 在应用配置文件中修改配置

image.png

b) 多个模块的时候 可以使用扩展配置 分模块配置 ---【详情参见 配置篇】

i. 传统

image.png

ii. 潮流

image.png

林子大了 鸟多了 维护起来更方便 逼格高!

thinkphp\library\think\View.php 默认配置

image.png
  1. 优先级 同配置优先级 方法>控制器>扩展>应用>惯例 【详情参见 配置篇】 这个配置上传下载目录 尤其明显

三、系统变量原生标签

i. 模版中使用系统变量

image.png

ii. 使用系统变量 获取当前用户 服务器信息 配置信息等等

image.png
image.png

iii. 模版文件中也可以使用 php原生标签

image.png

可以用但是不推荐使用 混编 不利于维护 最好前后台代码分离 前台展示数据 后台处理数据

四、变量输出调节器

i. 在模版中使用函数 md5()加密 substr() 截串 date() 格式化

image.png

ii. 数值运算 自增 自减

image.png

iii. default 定义默认值

image.png

iv. {literal}中间的内容不会被编译 原样输出{/literal}

image.png
image.png

v. 注释

  1. 页面上不显示 查看源代码能看到

  2. {/* 模版注释 */} 页面不显示 查看源代码看不到

五、模版循环标签

i. volist标签通常用于查询数据集(select方法)的结果输出,通常模型的select方法返回的结果是一个二维数组,可以直接使用volist标签进行输出。

  1. 默认 迭代器遍历数组中所有数据

a) 在控制器中首先对模版赋值:

image.png

b) 在模版定义如下,循环输出用户的编号和姓名:

image.png

c) name属性:当前模板赋值的变量名称,

Id:表示当前的循环变量,可以随意指定 v|k|data...

  1. 查询结果中的部分数据,

a) 输出5~15条记录

image.png

b) 输出偶数记录

image.png
  1. 可传入的参数:

a) offset: offset=’5’ 从第五条记录开始遍历

b) length: 遍历的长度(当前循环的次数)

c) mod: 对当前循环次数取余

d) empty: empty=”暂时没有数据” 支持变量输出

e) key: 数组索引 直接使用$i|$key即可 或者指定key属性 key=’s’ 用$s 获取索引

ii. foreach 类似于volist 没有太多额外属性

  1. 最简单
image.png
  1. 也可以用name:数据源 item:循环变量指定
image.png
  1. 直接 $key 输出索引 或者 key=’k’ $k获取当前索引

iii. for循环

  1. 开始值、结束值、步进值和循环变量都可以支持变量,开始值和结束值是必须,其他是可选。comparison 的默认值是lt,name的默认值是i,步进值的默认值是1
image.png
image.png
  1. 解析之后
image.png

六、比较标签

i. eq|equal|nequal|notequal 相等|不等

image.png

ii. gt|lt 大于|小于

image.png

iii. egt|elt 大于等于|小于等于同理

iv. 以上比较是变量(name=’X’) 和一个数值的比较 变量和变量的比较 value=”$b” 其他同理

image.png

七、条件判断标签

i. Switch标签

  1. 语法:
image.png
  1. 如:
image.png
  1. name:可以使用函数以及系统变量 name=”Think.get.sid|abs”

case的value属性支持多个条件判断 |分割

{case value=”gif|png|jpg”}图片格式{/case}

也可以使用变量 是用变量不支持多个条件判断

默认case会自动添加break 如果不要break

image.png
  1. 简单用法:
image.png

ii. if标签

  1. 语法:
image.png
  1. condotion属性:

a) 使用php代码

condition="strtoupper($user['name']) neq 'THINKPHP'"

b) 支持点|对象语法

condition="$user.name neq 'ThinkPHP'"

condition="$user:name neq 'ThinkPHP'"

c) 简单用法

image.png

d) 三种写法 结果是一样的

image.png

iii. in | notin |between |notbetween 判断变量是否在某个范围

  1. Value可用变量 $range可以是数组 也可以是以逗号分割的字符串 value也可以是系统变量
image.png
image.png
  1. Between同理 value代表区间 传入两个值,(系统)变量|数组
image.png

iv. range

  1. 语法:
image.png
  1. 其中type属性的值可以用in/notin/between/notbetween,其它属性的用法和IN或者BETWEEN一致。

v. Defined常量是否定义

  1. 语法:
image.png
  1. name:属性值 严格大小写

八、模版的布局 包含和继承

i. 包含 模版引入 include

image.png

ii. 继承

  1. 定义base.html 作为父模版(基板)文件

  2. 其他模版文件继承

image.png
  1. 在基板文件中 刨坑
image.png
  1. 在其他 继承基板的文件中 填土
image.png
  1. 坑可以有多个 但是给坑起的名字不能一样 否则就填错土了

  2. 填坑的时候 可以在基板的基础上填(继承基板坑里面的内容)

{block} 基板这个坑里面的东西

image.png

iii. 布局 layout

  1. 应用配置 conf/config.php 模版配置'template' => [] ;里面新增配置
image.png
  1. 开启layout之后 fetch()默认查找的是 view/layout.html (文件名对应 layout_name)
image.png
  1. 定义base.html(基板文件) --替换内容的地方 只挖了一个坑
image.png
  1. 其他模版文件 不需要继承直接输出 替换的就是{CONTENT}的内容 填坑
image.png
  1. 想挖更多的坑 在layout.html中{$a} {$b}变量的形式接收

  2. 在其他模版文件中 $this->assign(‘a’,’XXX’) ; $this->assign(‘b’,’XXX’);即可

iv. 什么情况下用继承|布局 视情况而定吧

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,189评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,577评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,857评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,703评论 1 276
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,705评论 5 366
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,620评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,995评论 3 396
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,656评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,898评论 1 298
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,639评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,720评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,395评论 4 319
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,982评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,953评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,195评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 44,907评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,472评论 2 342

推荐阅读更多精彩内容

  • 作者:陈中舒时间:2017年5月11日 ThinkPHP 5.0的安装 方式一:官网下载 官网地址:http://...
    忠叔阅读 6,913评论 3 54
  • ThinkPHP5 ---基础篇(配置) 一、惯例配置 i. 定义配置文件 public/index.php | ...
    donglingjiu阅读 2,533评论 0 1
  • 用感情做事的人,经常会受到感情的伤害,甚至会引发抱怨、嗔恨、愤怒等等不良的心理反应。为什么用感情做事情,会受到感情...
    一个人的独行阅读 446评论 0 1
  • 点击关注文集目录 15.危险逃亡路(2):两个大忽悠 和少有侠名的杜弘相比,吴辩的条件确实差了一大截,杜弘...
    赫连伯伯阅读 600评论 0 4
  • 1,今天上午又参加了读书会,我清晰的能感觉到,当与人面对面交流沟通的时候,我的状态是十分兴奋的。不论是插科打诨还是...
    Woody是多么的寂寞阅读 168评论 0 0