ThinkPHP6.0 视图

收藏334

阅读187516

更新时间2022-04-28

前言:

模板引擎支持普通标签和XML标签方式两种标签定义,分别用于不同的目的.


ThinkPHP6 视图

  • 模板引擎支持普通标签XML标签方式两种标签定义,分别用于不同的目的

标签类型描述
普通标签主要用于输出变量、函数过滤和做一些基本的运算操作
XML标签也称为标签库标签,主要完成一些逻辑判断、控制和循环输出,并且可扩展

 一、运算符 

运算符示例
+{$a+$b}
-{$a-$b}
*{$a*$b}
/{$a/$b}
%{$a%$b}
++{$a++} 或 {++$a}
--{$a--} 或{--$a}
综合运算{$a+$b*10+$c}
三元运算符{$a==$b ? 'yes' : 'no'}

controller文件

public function index(){

    View::assign('a',100);

    View::assign('b',21);

    return View::fetch();

}

view文件

{$a+$b}

{$a-$b}

{$a*$b}

{$a/$b}

{$a%$b}

{$a++}

{++$a}

{$a--}

{--$a}

{$c ? '存在' : '不存在'}

 二、模版函数 

方法描述
date日期格式化(支持各种时间类型)
format字符串格式化
upper转换为大写
lower转换为小写
first输出数组的第一个元素
last输出数组的最后一个元素
default默认值
raw不使用(默认)转义
md5md5加密
substr截取字符串
  • 可以多函数调用

controller文件

public function index(){

    View::assign('time',1576048640);

    View::assign('num',10.0032);

    View::assign('str','OUyangKE');

    View::assign('arr',[

        '朱老师',

        '欧阳克',

        '西门大官人'

    ]);

    return View::fetch();

}

view文件

{$time|date='Y-m-d H:i:s'}

{$num|format='%02d'}

{$str|upper}

{$str|lower}

{$arr|first}

{$arr|last}

{$default|default="欧阳克"}

{$str|substr=0,3}

{$str|md5}

{$str|lower|substr=0,3}

三、循环标签

  • foreach 标签的用法和PHP语法非常接近,用于循环输出数组或者对象的属性

controller文件

public function index(){

    $arr = [

        [

            'id' => 1,

            'name' => '欧阳克'

        ],

        [

            'id' => 2,

            'name' => '朱老师'

        ],

        [

            'id' => 3,

            'name' => '西门大官人'

        ]

    ];

    View::assign('arr',$arr);

    return View::fetch();

}

view文件

{foreach $arr as $v}

   

        ID:{$v['id']}

        姓名:{$v['name']}

   

{/foreach}

四、volist 循环标签

  • 二维数组的结果输出

  • name 模板赋值的变量名称

  • id 当前的循环变量,可以随意起名

  • key 下标,从1开始,默认变量i

  • offset 开始行数

  • length 获取行数

  • empty 如果数据为空,显示此文字

view文件

{volist name="arr" id="v" key="k"  offset="1" length="2"}

   

        ID:{$v['id']}

        姓名:{$v['name']}

        下标:{$k}

   

{/volist}

五、if 判断标签

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

controller文件

public function index(){

    View::assign('status',1);

    View::assign('order_status',4);

    return View::fetch();

}

view文件

{if $status == 1}

   

开启

{/if}


{if $status == 0}

   

关闭

{else/}

   

开启

{/if}


{if $order_status == 0}

   

未支付

{elseif $order_status == 1/}

   

已支付 待发货

{elseif $order_status == 2/}

   

已发货 待收货

{elseif $order_status == 3/}

   

已收货 待评论

{elseif $order_status == 4/}

   

已完成

{/if}

六、switch 判断标签

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

view文件

{switch $order_status}

    {case 0 }

未支付
{/case}

    {case 1 }

已支付 待发货
{/case}

    {case 2 }

已发货 待收货
{/case}

    {case 3 }

已收货 待评论
{/case}

    {case 4 }

已完成
{/case}

{/switch}

七、包含文件

  • include 标签,引入模版文件

  • load 标签,引入资源文件(css、js)

view文件,把头部和尾部分文件

{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、条件标签

标签描述
in判断变量是否存在某些值
notin判断变量是否不存在某些值
between 判断变量是否存在某些值
notbetween 判断变量是否不存在某些范围值
present 判断某个变量是否 已定义
notpresent 判断某个变量是否 未定义
empty 判断某个变量是否为空
notempty 判断某个变量是否不为空
defined 判断某个常量是否 已定义
notdefined 判断某个常量是否 未定义

 

public function index(){
    View::assign('number',100);
    View::assign('string','');
    return View::fetch();
}
{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}

2、比较标签

标签描述
eq等于
neq 不等于
gt 大于
egt 大于等于
lt小于
elt 小于等于
heq 恒等于
nheq 不恒等于

 

public function index(){
    View::assign("number",100);
    View::assign("string","欧阳克");
    return View::fetch();
}
{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}
{heq name="string" value="欧阳克"}
    string 恒等于 欧阳克
{/heq}
{heq name="string" value="朱老师"}
    string 恒不等于 朱老师
{/heq}

3、循环标签

标签描述
for计数循环
  • start:开始值

  • end:结束值

  • step:步进值,默认1

  • name:循环变量名,默认i

{for start="1" end="50" step="5" name="i"}
    {$i}
{/for}

4、杂项标签

标签描述
literal原样输出
php 使用原生php代码
{literal}
    {$name} 这里$name不会被当作变量,而是普通字符
    {/literal}
    {php}
    echo '欧阳克';
    {/php}

九、示例

controller代码

namespace app\controller;

use think\facade\View;

class Index{

    public function index(){

        $title = '商城';

        $login = '欧阳克';

        $left = [

            [

                'title' => '商品管理',

                'lists' => [

                    [

                        'id' => 1,

                        'title' => '商品列表',

                    ],

                    [

                        'id' => 2,

                        'title' => '商品分类',

                    ]

                ]

            ],

            [

                'title' => '用户管理',

                'lists' => [

                    [

                        'id' => 3,

                        'title' => '用户列表',

                    ],

                    [

                        'id' => 4,

                        'title' => '购物车',

                    ],

                    [

                        'id' => 5,

                        'title' => '用户地址',

                    ],

                    [

                        'id' => 6,

                        'title' => '订单管理',

                    ]

                ]

            ],

            [

                'title' => '后台管理',

                'lists' => [

                    [

                        'id' => 7,

                        'title' => '管理员列表',

                    ],

                    [

                        'id' => 8,

                        'title' => '个人中心',

                    ],

                    [

                        'id' => 9,

                        'title' => '左侧菜单列',

                    ]

                ]

            ]

        ];

        $right = [

            [

                'id' => 1,

                'title' => '熙世界2019秋冬新款长袖杏色上衣连帽宽松刺绣文艺落肩袖加厚卫衣BF风',

                'cat' => '女装',

                'price' => 189,

                'discount' => 6,

                'status' => 1,

                // 'status' => '开启',

                'add_time' => '2019-12-12',

                // 'add_time' => '1576080000'

            ],

            [

                'id' => 2,

                'title' => '秋水伊人双面呢冬装2019年新款女装气质西装领撞色羊毛大衣外套女',

                'cat' => '女装',

                'price' => 699,

                'discount' => 7,

                'status' => 1,

                // 'status' => '开启',

                'add_time' => '2019-12-12',

                // 'add_time' => '1576080000'

            ],

            [

                'id' => 3,

                'title' => '微弹中高腰直脚牛仔裤男',

                'cat' => '男装',

                'price' => 179,

                'discount' => 8,

                'status' => 0,

                // 'status' => '开启',

                'add_time' => '2019-12-12',

                // 'add_time' => '1576080000'

            ],

            [

                'id' => 1,

                'title' => '男士长袖t恤秋季圆领黑白体恤T 纯色上衣服打底衫',

                'cat' => '男装',

                'price' => 99,

                'discount' => 9,

                'status' => 1,

                // 'status' => '开启',

                'add_time' => '2019-12-12',

                // 'add_time' => '1576080000'

            ],

        ];

        View::assign([

            'title'  => $title,

            'login' => $login,

            'left' => $left,

            'right' => $right

        ]);

        return View::fetch();

    }

}

view代码:head.html


    {$title}--后台管理系统

   

   

   

   

        {$title}--后台管理系统

        【{$login}】退出

   

view代码:left.html

view代码:bottom.html


view代码:index.html

{include file="public/head" /}

{include file="public/left" /}

   

        商品列表

       

   

   

       

           

               

               

               

               

               

               

               

               

               

           

       

       

            {volist name="right" id="right_v"}

               

                   

                   

                   

                   

                   

                   

                   

                   

                   

               

            {/volist}

       

   

ID商品标题分类原价折扣现价库存状态添加时间
{$right_v.id}{$right_v.title}{$right_v.cat}{$right_v.price}{$right_v.discount}

                        {if $right_v.discount!=0}

                            {$right_v.price*($right_v.discount/10)}

                        {else/}

                            {$right_v.price}

                        {/if}

                   

{$right_v.stock}{if $right_v['status']==1}开启{else/}关闭{/if}{$right_v.add_time|date='Y-m-d'}

{include file="public/bottom" /}




科技资讯

更多

精选课程

更多
前端入门_HTML5
前端入门_HTML5

共29课时

61.7万人学习

CSS视频教程-玉女心经版
CSS视频教程-玉女心经版

共25课时

39.3万人学习

JavaScript极速入门_玉女心经系列
JavaScript极速入门_玉女心经系列

共43课时

70.9万人学习

独孤九贱(1)_HTML5视频教程
独孤九贱(1)_HTML5视频教程

共25课时

61.6万人学习

独孤九贱(2)_CSS视频教程
独孤九贱(2)_CSS视频教程

共22课时

23万人学习

独孤九贱(3)_JavaScript视频教程
独孤九贱(3)_JavaScript视频教程

共28课时

33.9万人学习

独孤九贱(4)_PHP视频教程
独孤九贱(4)_PHP视频教程

共89课时

125万人学习

关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号