Thinkphp6视图介绍
一.MVC
MVC 软件系统分为三个基本部分:模型(Model)、视图(View)和控制器(Controller)
ThinkPHP6 是一个典型的 MVC 架构
控制器—控制器,用于将用户请求转发给相应的Model进行处理,并根据Model的计算结果向用户提供相应响应视图—为用户提供使用界面,与用户直接进行交互。
模型—承载数据,并对用户提交请求进行计算的模块。
MVC架构程序的工作流程:
(1)用户通过View 页面向服务端提出请求,可以是表单请求、超链接请求、AJAX 请求等
(2)服务端Controller 控制器接收到请求后对请求进行解析,找到相应Model 对用户请求进行处理
(3)Model处理后,将处理结果再交给 Controller
(4)Controller在接到处理结果后,根据处理结果找到要作为向客户端发回的响应View页面。页面经渲染(数据填充)后,再发送给客户端。
二.应用模式访问
项目访问路径:域名/index.php/index/index
index.php 入口文件(可以通过配置伪静态省略)
index 控制器
index 方法
模板路径
默认设置的模板目录名是`view`,如果没有特殊需求,不建议更改:
三.模板渲染
要使用View,必须先引入think\facade\View 门面类
模板渲染的最典型用法是直接使用fetch方法,不带任何参数,系统会按照默认规则自动定位视图(view)目录下的模板文件,其规则是:控制器名(小写+下划线)/操作名(方法名字).html
3.1简单渲染
自动定位当前控制器视图目录下的index视图文件,view\index\index.html文件
namespace app\user\controller;
use think\facade\View;class Index
{public function index(){// 或者批量赋值View::assign(['name' => 'ThinkPHP','email' => 'thinkphp@qq.com']);// 模板输出return View::fetch();// 或者//return view();}
}
一个控制器的接口文件(index.php)需要对应view下同名目录中的一个同名HTML文件。
即:创建文件:view/index/index.html,与控制器中的接口文件对应,这样控制器接口文件中的渲染代码便会找到这个HTML模板进行渲染。
view代码(注:在app目录下,view目录需要我们手动创建)
注:控制器里面类对应view下面的目录
注:控制器里面方法对应view下面的目录里的静态文件
3.2当前控制器下其他模板
定位的是当前控制器视图目录下的user视图文件
3.3只渲染内容
public function index()
{// 此时要用单引号 双引号会解析变量$content = '我是{$name}<br/>性别{$gender}';return View::display($content, ['name' => '张三', 'gender' => '男']);}
视图根目录模板
public function index()
{return View::fetch('/index');// 或者return view('/index');}
当前控制器下其他模板
定位的是当前控制器视图目录下的index视图文件
public function index()
{return View::fetch('index');// 或者return view('index');}
其他控制器下的模板
定位的是其他控制器视图目录下模板文件;
控制器不存在只要视图目录和文件存在,也可以访问
public function index()
{return View::fetch('index/index');// 或者return view('index/index');}
相对定位下模板访问
相对的是入口文件index.php所在位置
public function index()
{return View::fetch('../user/index.html');// 或者return view('../user/index.html');}
模板变量
使用assign方法进行全局模板变量赋值,如果你需要单次赋值的话,可以直接用fetch方法传入
模板输出{$name}
视图:模板赋值与模板输出
<?php
declare (strict_types = 1);namespace app\user\controller;
use think\facade\View;class Index
{//第一种输出方法
public function index()
{// 模板变量赋值View::assign('name','ThinkPHP');//把ThinkPHP赋值给name 然后显示到view文件夹下的index.html 中的<view>{$name}</view>View::assign('email','thinkphp@qq.com');// 或者批量赋值View::assign(['name' => 'ThinkPHP','email' => 'thinkphp@qq.com']);// 模板输出return View::fetch('/index');//加\渲染当前view目录下的html文件,不加\的话他会渲染view\index\index.html文件
}//第二种输出方法 ,这种方法比上面的好用
public function index()
{// 模板输出并变量赋值return View::fetch('/index', ['name' => 'ThinkPHP','email' => 'thinkphp@qq.com']);
}//第三种输出方法public function index()
{// view()助手函数return view('index', ['name' => 'ThinkPHP','email' => 'thinkphp@qq.com']);
}}
前端代码
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>user-index</title>
</head>
<body>
姓名:{$name}
<br>
email:{$email}
</div>
</body>
</html>
return View::fetch('/index');
加\渲染当前view目录下的html文件,如果不加\的话他会渲染view\index\index.html文件会显示报错
相关文章:

Thinkphp6视图介绍
一.MVC MVC 软件系统分为三个基本部分:模型(Model)、视图(View)和控制器(Controller) ThinkPHP6 是一个典型的 MVC 架构 控制器—控制器,用于将用户请求转发给相应的Model进行处理&a…...

躺平成长-人工智能进行编程-(12)
躺平成长: 让每一个人在科技(开源的网络/智能科技对于生活琐事的处理)的帮助下,实现养生反卷,躺平成长。 开源竞争: 当你无法彻底掌握技术的时候,你就开源这个技术,形成技术依赖&a…...

计算机网络中的域名系统(DNS)及其优化技术
💓 博客主页:瑕疵的CSDN主页 📝 Gitee主页:瑕疵的gitee主页 ⏩ 文章专栏:《热点资讯》 计算机网络中的域名系统(DNS)及其优化技术 计算机网络中的域名系统(DNS)及其优化…...

Matplotlib库中show()函数的用法
在Matplotlib库中使用show()函数是用于显示绘制的图形的函数。它将图形显示在屏幕上或保存到文件中。show()函数通常在绘制完图形后调用。 Matplotlib是一个用于绘制2D图形的Python库,它提供了丰富的绘图工具和函数,可以用于创建各种类型的图表…...

C#中object和dynamic
在C#中,object和dynamic都是用于存储不同类型值的类型,但它们之间存在一些关键的区别: object object是C#中的基元类型之一,是所有其他类型的最终基类。当你将一个值赋给object类型的变量时,编译器会执行装箱操作&am…...

Spring Cloud Eureka 服务注册与发现
Spring Cloud Eureka 服务注册与发现 一、Eureka基础知识概述1.Eureka两个核心组件2.Eureka 服务注册与发现 二、Eureka单机搭建三、Eureka集群搭建四、心跳续约五、Eureka自我保护机制 一、Eureka基础知识概述 1.Eureka两个核心组件 Eureka Server :服务注册中心…...

【WPF】Prism学习(三)
Prism Commands 1.复合命令(Composite Commanding) 这段内容主要介绍了在应用程序中如何使用复合命令(Composite Commands)来实现多个视图模型(ViewModels)上的命令。以下是对这段内容的解释: …...

1+X应急响应(网络)系统加固:
系统加固: 数据库的重要性: 数据库面临的风险: 数据库加固: 业务系统加固: 安全设备加固: 网络设备加固:...

使用 Grafana api 查询 Datasource 数据
一、使用grafana 的api 接口 官方API 二、生成Api key 点击 Administration -》Users and accss -》Service accounts 进入页面 点击Add service account 创建 service account 点击Add service account token 点击 Generate token , 就可以生成 api key 了 三、进入grafana…...

【电子设计】按键LED控制与FreeRTOS
1. 安装Keilv5 打开野火资料,寻找软件包 解压后得到的信息 百度网盘 请输入提取码 提取码:gfpp 安装526或者533版本都可以 下载需要的 F1、F4、F7、H7 名字的 DFP pack 芯片包 安装完 keil 后直接双击安装 注册操作,解压注册文件夹后根据里面的图示步骤操作 打开说明 STM…...

JMeter中添加请求头
在JMeter中添加请求头的步骤如下: 1.打开HTTP信息头管理器 : 首先,你需要进入JMeter的HTTP请求组件。这可以通过在HTTP请求测试元素上右键点击,然后选择“添加 > 配置元件 > HTTP信息头管理器”来完成。 2.添加新的请求头…...

VMD + CEEMDAN 二次分解,CNN-LSTM预测模型
往期精彩内容: 时序预测:LSTM、ARIMA、Holt-Winters、SARIMA模型的分析与比较 全是干货 | 数据集、学习资料、建模资源分享! EMD变体分解效果最好算法——CEEMDAN(五)-CSDN博客 拒绝信息泄露!VMD滚动分…...

【Linux系统编程】第四十六弹---线程同步与生产消费模型深度解析
✨个人主页: 熬夜学编程的小林 💗系列专栏: 【C语言详解】 【数据结构详解】【C详解】【Linux系统编程】 目录 1、Linux线程同步 1.1、同步概念与竞态条件 1.2、条件变量 1.2.1、认识条件变量接口 1.2.2、举例子认识条件变量 1.2.3、…...

VoIP是什么?
IP 语音 (VoIP)(Voice over Internet Protocol) 是一种通过互联网拨打电话的方法。与旧的固定电话系统不同,互联网并非设计用于在连接的人之间实时传输音频信号。必须构建专门的技术和协议才能使之成为可能,这些技术和协议构成了 …...

MySQL 中的集群部署方案
文章目录 MySQL 中的集群部署方案MySQL ReplicationMySQL Group ReplicationInnoDB ClusterInnoDB ClusterSetInnoDB ReplicaSetMMMMHAGalera ClusterMySQL ClusterMySQL Fabric 总结参考 MySQL 中的集群部署方案 MySQL Replication MySQL Replication 是官方提供的主从同步方…...

《设计模式》创建型模式总结
目录 创建型模式概述 Factory Method: 唯一的类创建型模式 Abstract Factory Builder模式 Prototype模式 Singleton模式 最近在参与一个量化交易系统的项目,里面涉及到用java来重构部分vnpy的开源框架,因为是框架的搭建,所以会涉及到像…...

Conda安装与使用中的若干问题记录
Conda安装与使用中的若干问题记录 1.Anaconda 安装失败1.1.问题复述1.2.问题解决(安装建议) 2.虚拟环境pip install未安装至本虚拟环境2.1.问题复述2.2.问题解决 3.待补充 最近由于工作上的原因,要使用到Conda进行虚拟环境的管理,…...

人力资源招聘系统的革新之路:从传统到智能的转变
在全球化与数字化交织的今天,企业间的竞争日益激烈,而人才作为企业发展的核心驱动力,其重要性不言而喻。传统的人力资源招聘方式,如依赖纸质简历、人工筛选、面对面面试等,不仅效率低下,且难以精准匹配企业…...

Python网络爬虫与数据采集实战——网络协议与HTTP
目录 1. HTTP协议简介 2. 常见的请求方法 3. 状态码含义 实际应用中的HTTP协议 1. 如何在爬虫中使用HTTP协议 2. 模拟浏览器请求与爬虫反爬虫技术 3. 高级HTTP请求 实现爬虫时HTTP协议的优化与常见问题 总结 1. HTTP协议简介 HTTP的定义与作用 HTTP(超文本…...

从零开始的c++之旅——二叉搜索树
1、二叉搜索树概念 1. ⼆叉搜索树的概念 ⼆叉搜索树⼜称⼆叉排序树,它或者是⼀棵空树,或者是具有以下性质的⼆叉树: • 若它的左⼦树不为空,则左⼦树上所有结点的值都⼩于等于根结点的值 • 若它的右⼦树不为空,则右⼦树上所有结…...

CSS回顾-基础知识详解
一、引言 在前端开发领域,CSS 曾是构建网页视觉效果的关键,与 HTML、JavaScript 一起打造精彩的网络世界。但随着组件库的大量涌现,我们亲手书写 CSS 样式的情况越来越少,CSS 基础知识也逐渐被我们遗忘。 现在,这种遗…...

Elasticsearch 查询时 term、match、match_phrase、match_phrase_prefix 的区别
Elasticsearch 查询时 term、match、match_phrase、match_phrase_prefix 的区别 keyword 与 text 区别term 查询match 查询match_phrase 查询match_phrase_prefix 查询写在最后 在讲述 es 查询时 term、match、match_phrase、match_phrase_prefix 的区别之前,先来了…...

低代码平台:跨数据库处理的重要性与实现方式
一、低代码平台概述 低代码平台作为一种创新的软件开发工具,为开发者带来了极大的便利。它具备可视化编程工具和大量预构建组件,这使得开发者无需编写大量代码就能创建应用程序,显著降低了软件开发的技术门槛。无论是专业开发人员还是业务人员…...

【jvm】如何破坏双亲委派机制
目录 1.说明2.重写ClassLoader的loadClass方法2.1 原理2.2 实现步骤2.3 注意事项 3.使用线程上下文类加载器3.1 原理3.2 实现步骤3.3 应用场景 4.利用SPI机制4.1 原理4.2 实现步骤4.3 应用场景 5.Tomcat等容器的自定义类加载器5.1 原理5.2 实现方式5.3 应用场景 1.说明 1.双亲委…...

ReactPress与WordPress:一场内容管理系统的较量
ReactPress Github项目地址:https://github.com/fecommunity/reactpress WordPress官网:https://wordpress.org/ ReactPress与WordPress:一场内容管理系统的较量 在当今数字化时代,内容管理系统(CMS)已成为…...

网络安全练习之 ctfshow_web
文章目录 VIP题目限免(即:信息泄露题)源码泄露前台JS绕过协议头信息泄露robots后台泄露phps源码泄露源码压缩包泄露版本控制泄露源码(git)版本控制泄露源码2(svn)vim临时文件泄露cookie泄露域名txt记录泄露敏感信息公布内部技术文档泄露编辑器…...

在 Service Worker 中caches.put() 和 caches.add()/caches.addAll() 方法他们之间的区别
在 Service Worker 中,caches.put(request, response) 和 caches.add(request)/caches.addAll(requests) 方法都用于将资源添加到缓存中,但它们的使用场景和目的略有不同。 caches.put(request, response),一用在fetch事件当中,由…...

UNIAPP发布小程序调用讯飞在线语音合成+实时播报
语音合成能够将文字转化为自然流畅的人声,提供100发音人供您选择,支持多语种、多方言和中英混合,可灵活配置音频参数。广泛应用于新闻阅读、出行导航、智能硬件和通知播报等场景。 在当下大模型火爆的今日,语音交互页离不开语音合…...

跳房子(弱化版)
题目描述 跳房子,也叫跳飞机,是一种世界性的儿童游戏,也是中国民间传统的体育游戏之一。 跳房子的游戏规则如下: 在地面上确定一个起点,然后在起点右侧画 n 个格子,这些格子都在同一条直线上。每个格子内…...

ubuntu22 安装 minikube
在Ubuntu 22上安装Minikube,你可以按照以下步骤进行: 安装依赖: 更新系统并安装必要的依赖项: sudo apt-get update sudo apt-get install -y apt-transport-https ca-certificates curl安装Docker: Minikube可以使用D…...