ThinkPHP视图

news2024/11/19 7:44:41

ThinkPHP视图

  • 前言
  • 视图
    • 一、运算符
    • 二、模版函数
    • 三、循环标签
    • 四,volist 循环标签
    • 五,if 判断标签
    • 六,switch 判断标签
    • 七、包含文件
    • 八、其他标签
          • 1. 条件标签
          • 2. 比较标签
          • 3. 循环标签
          • 4. 杂项标签
  • 总结


前言

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语法差不多,注意标签都是等对出现的,注意

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/451305.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

React Native 9个好用的开发工具盘点

近几年在大前端的开发领域&#xff0c;选择跨端方案的公司和部门越来越多&#xff0c;曾一何时市面有不下10种跨端框架&#xff0c;但随着“生物进化论”的推动&#xff0c;目前市面上仅剩两种主流方案&#xff0c;就是经常听到的 React Native 和 Flutter。去年终于引来了 Rea…

企业网络安全漏洞分析及其解决_kaic

摘要 为了防范网络安全事故的发生,互联网的每个计算机用户、特别是企业网络用户&#xff0c;必须采取足够的安全防护措施&#xff0c;甚至可以说在利益均衡的情况下不惜一切代价。事实上&#xff0c;许多互联网用户、网管及企业老总都知道网络安全的要性&#xff0c;却不知道网…

《JavaEE初阶》多线程进阶

《JavaEE初阶》多线程进阶 文章目录 《JavaEE初阶》多线程进阶常见锁策略乐观锁与悲观锁普通互斥锁与读写锁轻量级锁与重量级锁自旋锁与挂起等待锁公平锁和非公平锁可重入锁和不可重入锁 CAS什么是CASCAS的应用场景:CAS 的 ABA 问题什么是CAS 的 ABA 问题解决方案: synchronize…

libxml2交叉编译和移植

编译后的libxml2如果交叉编译环境一致可以直接使用资源-CSDN文库 嵌入式开发过程中实用libxml2进行xml文件的解析、创建、使用。 这里介绍一下该libxml2的交叉编译过程和移植步骤 下载地址 libxml2 各版本下载地址 ftp://xmlsoft.org/libxml2/ ftp://xmlsoft.org/libxml2…

【汽车电子】5分钟了解汽车操作系统(科普篇)

在智能汽车电动汽车的浪潮下&#xff0c;「软件定义汽车」的理念已经成为很多厂家的共识&#xff0c;未来决定汽车个性化差异的不再是马力大小、座椅材质、底盘软硬等&#xff0c;而应该是人工智能、大数据和云计算技术的综合体。 要想实现这一切&#xff0c;就要给汽车安装一个…

【论文简述】WT-MVSNet: Window-based Transformers forMulti-view Stereo(arxiv 2023)

一、论文简述 1. 第一作者&#xff1a;Jinli Liao、Yikang Ding 2. 发表年份&#xff1a;2023 3. 发表期刊&#xff1a;arxiv 4. 关键词&#xff1a;MVS、3D重建、Transformer、极线、几何约束 5. 探索动机&#xff1a;然而&#xff0c;在没有极几何约束的情况下匹配参考图…

【Java数据结构】二叉树

二叉树 树型结构概念树中的概念树的表现形式 二叉树两种特殊的二叉树二叉树的性质二叉树的存储二叉树基本操作 树型结构 概念 树是一种非线性的数据结构&#xff0c;它是由n&#xff08;n>0&#xff09;个有限结点组成一个具有层次关系的集合。把它叫做树是因为它看起来像…

读论文--Token Merging for Fast Stable Diffusion(用于快速Diffusion模型的tome技术)

摘要 The landscape of image generation has been forever changed by open vocabulary diffusion models. However, at their core these models use transformers, which makes generation slow. Better implementations to increase the throughput of these transformers …

JMeter的使用(一)

JMeter的使用 参考黑马视频 下载工具 一、准备工作 1、准备文件sql SET NAMES utf8mb4; SET FOREIGN_KEY_CHECKS 0;-- ---------------------------- -- Table structure for sys_follow_user -- ---------------------------- DROP TABLE IF EXISTS sys_follow_user; CR…

Html5惯性小鸟游戏制作与分享(怀旧小游戏)

当年电子词典中的经典游戏&#xff0c;后来出了无数变种的玩法。这里还原了最初的玩法与操作。实现了这一款有点难度“的怀旧经典游戏。 玩法也很简单&#xff0c;不用碰到任何东西、持续下去。。。 可以进行试玩&#xff0c;手机玩起来效果会更好些。 点击试玩 还有很多变种的…

网络安全SQL注入

1.何为Sql注入&#xff1f; 所谓SQL注入&#xff0c;就是通过把SQL命令插入到Web表单提交或输入域名或页面请求的查询字符串&#xff0c;最终达到欺骗服务器执行恶意的SQL命令。具体来说&#xff0c;它是利用现有应用程序&#xff0c;将&#xff08;恶意的&#xff09;SQL命令注…

发送结构化的网络消息数据

server.cpp #define WIN32_LEAN_AND_MEAN //尽力减少一些其他依赖库的引用 #define _WINSOCK_DEPRECATED_NO_WARNINGS#include<windows.h> #include<WinSock2.h> #include<stdio.h> //#pragma comment(lib,"ws2_32.lib")struct DataPackage {int …

HTTP Keep-Alive模式

故事发生在10月份的一次面试经历中&#xff0c;本来我不想说出来丢人显眼&#xff0c;但是为了警醒自己和告诫后人&#xff0c;我决定写成博文发出来。因为在面试过程中&#xff0c;我讲在2009年写过QQ农场助手&#xff0c;在这期间深入学习了HTTP协议&#xff0c;而且在2010-0…

盐湖钛系提锂吸附剂

#盐湖钛系提锂吸附剂 盐湖钛系提锂吸附剂HPL900是一种高选择性高容量锂离子筛吸附剂。其通过纳米杂化、锂离子印迹等技术制备而成。该吸附剂活性纳米晶粒子对锂离子具有高效吸附性能&#xff08;其对锂的吸附容量大于10.0g Li/L&#xff09;&#xff0c;同时吸附位点对锂离子具…

哈希表(底层结构剖析-- 上)

文章目录 哈希表底层结构剖析哈希概念哈希冲突哈希函数 哈希冲突解决办法闭散列( 线性探测 二次探测)开散列 哈希表闭散列方法的模拟实现基本框架有关哈希数据的类插入函数删除函数查找函数增加仿函数将所有数据类型转换为整型 哈希表开散列方法的模拟实现(增加仿函数版) 哈希…

Visual Studio的安装注意

本文目前包含的内容&#xff1a; Visual Studio版本选择工作负载组建的选择安装后的环境配置 目录 1. 安装前1. 安装过程中2. 安装后注意 1. 安装前 安装版本选择&#xff1a; 一定不要选最新的版本&#xff0c;选3-5年前的稳定版本&#xff01;新版本会出很多bug。 1. 安装过…

银行数字化转型导师坚鹏:银行数字化转型创新与应用前沿

银行数字化转型创新与应用前沿 ——金融科技如何赋能银行数字化转型 课程背景&#xff1a; 数字化背景下&#xff0c;很多银行存在以下问题&#xff1a; 不清楚5G如何赋能银行数字化转型&#xff1f; 不清楚最新金融科技如何赋能银行数字化转型&#xff1f; 不了解银行…

自动驾驶落地如何降本?这家头部公司有自己的独特之处

一直以来&#xff0c;商用车智能化与乘用车有很多差异化&#xff0c;比如&#xff0c;B端客户对于规模车队的采购成本&#xff0c;智能化应用场景的适配性以及对自动驾驶更为务实的认知。 4月18日&#xff0c;2023上海车展&#xff0c;作为场景化新能源的自动驾驶全球领导者&am…

直播软件app开发:如何开发一个可以免费打扑克的直播应用?

作为一个技术开发人员&#xff0c;我深知直播软件app开发的重要性。在这个数字化时代&#xff0c;越来越多的人选择使用直播软件来分享自己的生活和与朋友互动。而随着技术的发展&#xff0c;直播软件也不断更新和改进&#xff0c;为用户提供更好的体验和功能。 对于开发者来说…

git merge、git pull和git fetch

git merge 合并分支&#xff0c;将目标分支合并到当前分支git fetch 更新远端分支&#xff0c;但不会merge到本地git pull 更新远端分支并merge到本地git pull git fecth git merge merge的意思为“合并”&#xff0c;git merge命令是用于将分支合并在一起的操作&#xff…