ThinkPHP视图

本文介绍了ThinkPHP视图的基本语法,包括模板变量赋值、运算符的使用、模板函数、循环标签如`volist`以及条件判断标签`if`和`switch`。此外,还涵盖了包含文件和其他标签,如条件判断和比较标签的使用,帮助开发者更好地理解和应用ThinkPHP的视图功能。
摘要由CSDN通过智能技术生成


前言

ThinkPHP视图基本语法和PHP语法非常的像,所以掌握了php基本的语法,学习ThinkPHP视图语法非常的简单,注意模板渲染:就是各个文件夹的位置


视图

模板引擎支持普通标签和XML标签方式两种标签定义,分别用于不同的目的
- 普通标签: 主要用于输出变量、函数过滤和做一些基本的运算操作
- XML标签: 也称为标签库标签,主要完成一些逻辑判断、控制和循环输出,并且可扩展

一、运算符

+,-,*,/,%,++,–,综合运算,三元运算

在这里插入图片描述

  • app/controller/index.php
<?php
namespace app\controller;

use think\facade\View;

class Index
{
    public function index()
    {
        // 1、模板变量赋值
        View::assign('a', 1);
        View::assign('b', 2);
        
        // 模板输出
        return View::fetch();
    }
}

  • app/view/index/index.html
<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="UTF-8" />
        <title>ThinkPHP6</title>
    </head>
    <body>
        <div>{$a+$b}</div>
        <div>{$a-$b}</div>
        <div>{$a*$b}</div>
        <div>{$a/$b}</div>
        <div>{$a%$b}</div>
        <div>{$a++}</div>
        <div>{++$a}</div>
        <div>{$a--}</div>
        <div>{--$a}</div>
        <div>{$c ? '存在' : '不存在'}</div>
        <div>{$a*$b+100}</div>
    </body>
</html>

二、模版函数

如下的模板函数需要注意date,format,default,这些模板函数和其他的模板函数有区别

在这里插入图片描述

  • app/controller/index.php
<?php

namespace app\controller;

use think\facade\View;

class Index
{
    public function index()
    {
        View::assign('time', 1576048640);
        View::assign('num', 10.0032);
        View::assign('str', 'OUykKE');
        View::assign('arr', [
            '老师',
            'asf',
            'sadf'
        ]);
        return View::fetch();
    }
}
  • app/view/index/index.html
<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="UTF-8" />
        <title>ThinkPHP6</title>
    </head>
    <body>
        <div>{$time|date='Y-m-d H:i:s'}</div>
        <div>{$num|format='%02d'}</div>
        <div>{$str|upper}</div>
        <div>{$str|lower}</div>
        <div>{$arr|first}</div>
        <div>{$arr|last}</div>
        <div>{$default|default="1233342"}</div>
        <div>{$str|substr=0,3}</div>
        <div>{$str|md5}</div>
        <div>{$str|lower|substr=0,3}</div> <!--可以多个函数一起使用-->
    </body>
</html>

三、循环标签

如下语法根PHP语法大同小异

  • app/controller/index.php
<?php

namespace app\controller;

use think\facade\View;

class Index
{
    public function index()
    {
        $arr = [
            [
                'id' => 1,
                'name' => '克'
            ],
            [
                'id' => 2,
                'name' => '老师'
            ],
            [
                'id' => 3,
                'name' => 'asdf官人'
            ]
        ];
        View::assign('arr', $arr);
        return View::fetch();
    }
}
  • app/view/index/index.html
<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="UTF-8" />
        <title>ThinkPHP6</title>
    </head>
    <body>
        {foreach $arr as $v}
    <div>
        <span>ID:{$v['id']}</span>
        <span>姓名:{$v['name']}</span>
    </div>
{/foreach}
    </body>
</html>

四,volist 循环标签

  1. 二维数组的结果输出
  2. name 模板赋值的变量名称
  3. id 当前的循环变量,可以随意起名
  4. key 下标,从1开始,默认变量i
  5. offset 开始行数
  6. length 获取行数
  7. empty 如果数据为空,显示此文字
  • app/controller/index.php
<?php

namespace app\controller;

use think\facade\View;

class Index
{
    public function index()
    {
        $arr = [
            [
                'id' => 1,
                'name' => '克'
            ],
            [
                'id' => 2,
                'name' => '老师'
            ],
            [
                'id' => 3,
                'name' => 'asdf官人'
            ]
        ];
        View::assign('arr', $arr);
        return View::fetch();
    }
}

  • app/view/index/index.html
{volist name="arr" id="v" key="k"  offset="1" length="2"}
    <div>
        <span>ID:{$v['id']}</span>
        <span>姓名:{$v['name']}</span>
        <span>下标:{$k}</span>
    </div>
{/volist}

五,if 判断标签

if 标签的用法和PHP语法非常接近,用于条件判断

  • app/controller/index.php
<?php

namespace app\controller;

use think\facade\View;

class Index
{
    public function index()
    {
        View::assign('status', 1);
        View::assign('order_status', 4);
        return View::fetch();
    }
}
  • app/view/index/index.html
{if $status == 1}
    <div>开启</div>
{/if}

{if $status == 0}
    <div>关闭</div>
{else/}
    <div>开启</div>
{/if}

{if $order_status == 0}
    <div>未支付</div>
{elseif $order_status == 1/}
    <div>已支付 待发货</div>
{elseif $order_status == 2/}
    <div>已发货 待收货</div>
{elseif $order_status == 3/}
    <div>已收货 待评论</div>
{elseif $order_status == 4/}
    <div>已完成</div>
{/if}

六,switch 判断标签

switch 标签的用法和PHP语法非常接近,用于条件判断

  • app/controller/index.php
<?php

namespace app\controller;

use think\facade\View;

class Index
{
    public function index()
    {
        View::assign('order_status', 3);
        return View::fetch();
    }
}
  • app/view/index/index.html
<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="UTF-8" />
        <title>ThinkPHP6</title>
    </head>
    <body>
{switch $order_status}
    {case 0 }<div>未支付</div>{/case}
    {case 1 }<div>已支付 待发货</div>{/case}
    {case 2 }<div>已发货 待收货</div>{/case}
    {case 3 }<div>已收货 待评论</div>{/case}
    {case 4 }<div>已完成</div>{/case}
{/switch}
    </body>
</html>

七、包含文件

  • app/view/index/index.html
{include file="public/header" /}
{include file="public/left" /}

{load href="/static/layui/css/layui.css" /}
{load href="/static/layui/layui.js" /}

{include file="public/tail" /}

八、其他标签

1. 条件标签

在这里插入图片描述

  • app/controller/index.php
public function index(){
    View::assign('number',100);
    View::assign('string','');
    return View::fetch();
}
  • app/view/index/index.html
{in name="number" value="99,100,101"}
    number等于99,100,101任意一个值
{/in}
{notin name="number" value="99,100,101"}
    number不等于99,100,101任意一个值
{/notin}

{between name="number" value="1,10"}
    number等于1 到 10 之间的任意一个值
{/between}
{notbetween name="number" value="1,10"}
    number不等于1 到 10 之间的任意一个值
{/notbetween}

{present name="number"}
    number已经定义
{/present}
{notpresent name="n"}
    n还没有定义
{/notpresent}

{empty name="string"}
    name为空值
{/empty}
{notempty name="string"}
    name有值
{/notempty}

{defined name="NAME"}
    NAME常量已经定义
{/defined}
{notdefined name="NAME"}
    NAME常量未定义
{/notdefined}

条件标签,可以增加else标签

{in name="number" value="99,100,101"}
    number等于99,100,101任意一个值
{else/}
    number不等于99,100,101任意一个值
{/in}
2. 比较标签

在这里插入图片描述

  • app/controller/index.php
<?php

namespace app\controller;

use think\facade\View;

class Index
{
    public function index(){
    View::assign("number",100);
    View::assign("string","毫升的");
    return View::fetch();
}
}
  • app/view/index/index.html
<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="UTF-8" />
        <title>ThinkPHP6</title>
    </head>
    <body>
    {eq name="number" value="100"}
    number 等于 100
{/eq}

{neq name="number" value="101"}
    number 不等于 101
{/neq}

{gt name="number" value="33"}
    number 大于 33
{/gt}

{egt name="number" value="100"}
    number 大于等于 100
{/egt}

{lt name="number" value="200"}
    number 小于 200
{/lt}

{elt name="number" value="100"}
    number 小于等于 100
{/elt}
    </body>
</html>
3. 循环标签

在这里插入图片描述

  • app/view/index/index.html
<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="UTF-8" />
        <title>ThinkPHP6</title>
    </head>
    <body>
    {for start="1" end="50" step="5" name="i"}
    {$i}<br/>
{/for}
    </body>
</html>
4. 杂项标签

在这里插入图片描述

  • app/view/index/index.html
<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="UTF-8" />
        <title>ThinkPHP6</title>
    </head>
    <body>
   {literal}
    {$name} 这里$name不会被当作变量,而是普通字符
{/literal}

{php}
    echo 'asd';
{/php}
    </body>
</html>

总结

语法与PHP语法差不多,注意标签都是等对出现的,注意

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

安全天天学

你的鼓励是对我最大的鼓励

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值