视图
视图类(后端对前端数据的渲染,实现区别对待vip) use think\View;
解决think not support问题 cd tp6 composer require topthink/think-view
视图类的使用:(渲染前端) 在app目录下创建view目录,在view下建立路由路径,文件夹名为控制器名,函数名为文件名 在控制器中,使用视图 use think\View;
//表示初始化视图,assign将后端数据渲染到前端,fetch作为钩子钩住需要渲染的前端页面 public function user(View $view){ $test1=“haha this is test1”; //前端的t1变量对应后端的test1变量
v
i
e
w
?
>
a
s
s
i
g
n
(
′
t
1
′
,
view->assign('t1',
view?>assign(′t1′,$test1); //使用user.html模板 return $view->fetch(‘user’); }
//传输数组数据,前端要指定对象{$res[‘a1’]} $res=[‘a1’=>‘xiaoming’,‘b1’=>‘xiaohong’];
v
i
e
w
?
>
a
s
s
i
g
n
(
′
r
e
s
′
,
view->assign('res',
view?>assign(′res′,res);
//传输数据库数据 使用参数承接数据库获取的数据,然后进行渲染
view里html直接可以使用(前端提供参数,前端显示) 获取get值 1、{KaTeX parse error: Expected 'EOF', got '}' at position 13: _GET['name']}? 2、{Request.get.id} 访问xxx.com/u1?name=xiaoli
如果需要混编 require ‘1.php’; 默认调用public目录下的指定php文件(可能出现文件包含漏洞,不建议使用)
前端函数
模板输出 {$t1|default=‘没有东西’}
数据进行md5加密(32位) {$t1|md5}
把数据的html标签解析(可能出现xss漏洞) {$t1|raw}
时间戳转化为日期(常用unix) {$t1|date=‘Y-m-d H : m : s’}
裁剪字符(小说限看) {$t1 | substr=0,3} (从第几位开始,剪裁几个字符)
前端进行简单加减乘除 {$num1 + $num2}
省略多少位 {$t1|number_format=2}
前端流程控制
对数据库显示数据进行优化 foreach(自增遍历,$key作为下标) {foreach $value as
k
e
y
=
>
key=>
key=>value} {KaTeX parse error: Expected 'EOF', got '}' at position 12: value['id']}?------{value[‘username’]}----{$value[‘password’]}
{/foreach}
volist(可以指定显示数据条数,从后端拿到指定name,把res里的每个值变成value进行提取) {volist name=“res” id=“value”}
{KaTeX parse error: Expected 'EOF', got '}' at position 18: …lue['username']}?----{value[‘password’]}
{/volist}
可以指定显示多个 {volist name=“res” id=“value” offset=“2” length=“3”}
{KaTeX parse error: Expected 'EOF', got '}' at position 18: …lue["username"]}?---{value[“password”]}
{/volist}
只取出偶数的数据 {volist name=“res” id=“value” mod=“2”} {eq name=“mod” value=“1”}
{KaTeX parse error: Expected 'EOF', got '}' at position 18: …lue["username"]}?---{value[“password”]}
{/eq}
{/volist}
– if 条件判断
遍历之后,只能显示id<3的数据 {volist name=“res” id=“value”} {if (KaTeX parse error: Expected 'EOF', got '}' at position 12: value.id<3)}? <p>{value[“username”]}—{$value[“password”]}
{/if}
{/volist}
{if $age<15} 年龄小于15 {elseif $age>15 AND $age<18} 年龄大于15小于18 {else} 成年 {/if}
for循环 {for start=“1” end=“100” name=“i” step=“2”} {$i}
{/for}
是否相等 {eq name=“$user” value=“vip”} 你是vip {else/} 你不是vip {/eq}
Switch操作 {switch $user} {case 1|2|3} 你是1-3用户 {/case} {case 4|5} 你是4-5用户 {/case} {default/} no {/switch}
是否存在 {in name=“$user” value=“1,2,3”} yes {/in}
插入php代码 {php}…{/php}
自我小测
1、如何引入视图库?简述如何解决think not support问题? 2、如何布置视图?(文件夹及文件命名规则) 3、简述assign、fetch函数功能? 4、简述如何执行以下操作? 输出数组指定对象、后端传参、前端传参、混编需求、默认输出、md5加密、标签解析、日期转化、裁剪字符、基础运算、保留位数 5、简述以下前端流程控制的相关操作? 数据库显示优化、if条件判断、foreach循环、eq相等判断、switch操作、存在判断、插入php代码
作者说与今日小图
|