ThinkPHP6基础使用

news2024/9/21 20:14:46

ThinkPHP6基础使用

  • 前言
  • 1.基础
        • 1.1 开启调试模式
        • 1.2测试运行
        • 1.3单应用模式和多应用模式区别
        • 1.4安装视图
        • 1.5模板渲染
        • 1.6模板赋值
  • 总结


前言

这里的操作可能有点难懂,没关系的,只需要了解大致的框架构造就可以了


1.基础

1.1 开启调试模式

通过create-project安装后在根目录会自带一个.example.env文件(环境变量示例),你可以直接更名为.env,这样操作你就开启了调试模式
在这里插入图片描述

1.2测试运行

  1. 直接根目录为public,然后访问域名即可
    在这里插入图片描述

  2. 在根目录下面输入php think run ,然后在浏览器中输入地址http://localhost:8000/
    在这里插入图片描述

1.3单应用模式和多应用模式区别

  1. 单应用模式:入口地址就只有一个,开始下载包的时候就是单应用
  2. 多应用模式:入口地址有多个
    多应用模式:需要更新,执行以下命令require topthink/think-multi-app(多应用模式部署后,记得删除app目录下的controller目录(系统根据该目录作为判断是否单应用的依据))

1.4安装视图

视图功能由\think\View 类配合视图驱动类一起完成,新版仅内置了 PHP 原生模板引擎(主要用于内置的异常页面输出),如果需要使用其它的模板引擎需要单独安装相应的模板引擎扩展

  • ThinkPHP6已独立出一套模版,命名为:ThinkTemplate模板引擎
  • 使用think-template模板引擎,需安装think-view

安装方法:composer require topthink/think-view

  • 视图目录可以在根目录,也可以在 app 应用目录,这里直接在根目录安装,方便后面的操作

1.5模板渲染

要使用 View,必须先引入 think\facade\View 门面类,使用fetch 方法渲染页面,其参数是静态页面的路径,默认对应的静态页面

  • app/controller/Index.php
<?php
namespace app\controller;
use think\facade\View;
class Index{
    public function index(){
        return View::fetch();
    }
}

在app目录下面新建model目录,在model目录下面新建index目录,在index目录下面新建index.html
文件,有如下规则

  • Index 类对应view下面的目录

  • index 方法对应view下面的目录里的静态文件

  • app/controller/index/index.html

<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="UTF-8" />
        <title>Thinkphp6</title>
    </head>
    <body>
        <div style="color:red;">红色</div>
    </body>
</html>

1.6模板赋值

  • app/controller/Index.php
namespace app\controller;
use think\facade\View;
class Index{
    public function index(){
        // 1、模板变量赋值
        View::assign('name','123');
        View::assign('email','123@php.cn');
        // 2、批量赋值
        View::assign([
            'name'  => '123',
            'email' => '123@php.cn'
        ]);
        // 模板输出
        return View::fetch();
    }
}
  • app/controller/index/index.html
<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="UTF-8" />
        <title>ThinkPHP6</title>
    </head>
    <body>
        姓名:{$name}
        <br />
        邮箱:{$email}
    </body>
</html>

总结

注意修改.example.env文件进入调试模式,还要更改一个地方,让写错的时候能够报错,如下所示:
在这里插入图片描述

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

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

相关文章

springboot+vue在线外卖点餐系统,附源码,数据库

今天要和大家聊的是基于springbootvue在线外卖点餐系统 源码下载地址&#xff1a; https://download.csdn.net/download/gdutxiaoxu/87651066 开发环境&#xff1a; 后端&#xff1a; 开发语言&#xff1a;Java 框架&#xff1a;springboot JDK版本&#xff1a;JDK1.8 …

酷开科技携手京东深入布局投影赛道

沉浸式观影&#xff0c;需要氛围感。大屏幕&#xff0c;大空间&#xff0c;才能让人有身临其境之感&#xff0c;居家生活想要更大的屏幕&#xff0c;除了大屏电视&#xff0c;就要数投影仪了。一部投影仪&#xff0c;再加上充足的空间&#xff0c; 就能够投满整面墙&#xff0c…

第44步 深度学习图像识别:ResNet50建模(Tensorflow)

基于WIN10的64位系统演示 一、写在前面 &#xff08;1&#xff09;ResNet50 ResNet50是一种深度学习模型&#xff0c;由微软研究院的研究人员在2015年提出。"ResNet"的全称是"Residual Network"&#xff0c;意为"残差网络"&#xff0c;"…

WPS 智能办公体验官公测-附申请链接

&#x1f951; Welcome to Aedream同学 s blog! &#x1f951; 文章目录 WPS 智能办公体验官官网步骤1:填写申请表单&#xff1a;步骤2:获取兑换码&#xff1a; AI办公时代 WPS大家都了解就不再多介绍了&#xff0c;个人还是很期待的&#xff0c;可以申请体验一波。 WPS 智能…

“京津冀现代商贸物流金融创新实践基地”揭牌成立

来源 | 廊坊银行 在6月17日举办的京津冀现代商贸物流金融创新发展论坛上&#xff0c;“京津冀现代商贸物流金融创新实践基地”正式授牌。据介绍&#xff0c;这是目前京津冀区域内首个商贸物流金融创新实践基地。中国物流与采购联合会会长何黎明、廊坊市现代商贸物流领导小组办…

G2. Teleporters (Hard Version)(二分)

Problem - 1791G2 - Codeforces 这道题给定一个数轴上的点 0,1,...,n1&#xff0c;其中每个点 i (1 ≤ i ≤ n) 都有一个传送门。在第 i 个点&#xff0c;你可以进行以下操作&#xff1a; 向左移动一格&#xff1a;花费 1 个金币。 向右移动一格&#xff1a;花费 1 个金币。 使…

同时配置cuda11.0和11.1环境

同时配置cuda11.0和11.1环境 背景思路流程电脑环境确认确认位置安装新CUDA环境1、执行cuda.exe2. 配置环境变量 安装cudnn 背景 【在电脑上安装多个版本的cuda】&#xff1a;电脑已经安装好了cuda11.0&#xff0c;由于mmdetection版本不匹配&#xff0c;所以想要再安装cuda11.…

【Java】 Java 中函数式接口的使用

本文仅供学习参考&#xff01; 相关教程地址&#xff1a; https://www.runoob.com/java/java8-functional-interfaces.html https://www.cnblogs.com/dgwblog/p/11739500.html https://www.developer.com/java/java-functional-interfaces/ 接口是定义一组方法及其签名的契约。…

自学黑客(网络安全),一般人我劝你还是算了吧(自学网络安全学习路线--第五章 密码学基础上)【建议收藏】

文章目录 一、自学网络安全学习的误区和陷阱二、学习网络安全的一些前期准备三、自学网络安全学习路线一、密码学概述1、密码学的历史2、密码学的基本术语 二、密码学基本概念1、基本概念2、密码系统的安全性3、密码体制的分类4、密码体制的攻击 三、古典密码学四、对称密码算法…

Debezium系列之:监控 Debezium 实例

Debezium系列之&#xff1a;监控 Debezium 实例 一、概述二、实现步骤三、执行四、打开Grafana UI五、关闭集群 Debezium JMX相关的技术博客&#xff1a; Debezium系列之&#xff1a;安装jmx导出器监控debezium指标Debezium系列之&#xff1a;为Debezium集群JMX页面增加监控&a…

UE4/5动画系列(4.足部ik制作)

目录 前期准备 添加虚拟骨骼 ​编辑 腿部函数&#xff1a; 前肢&#xff1a; ​编辑 盆骨函数&#xff1a; 后肢&#xff1a; 进入动画图表&#xff1a; 前期准备 首先准备一个后期处理动画蓝图 然后【因为笔者之前的大象因为不知明原因崩溃&#xff0c;这里就不展示如何…

蓝桥杯专题-试题版-【圆的面积】【字符串对比】【字母图形】【核桃的数量】

点击跳转专栏>Unity3D特效百例点击跳转专栏>案例项目实战源码点击跳转专栏>游戏脚本-辅助自动化点击跳转专栏>Android控件全解手册点击跳转专栏>Scratch编程案例点击跳转>软考全系列点击跳转>蓝桥系列 &#x1f449;关于作者 专注于Android/Unity和各种游…

如何用机器学习做淘宝用户画像分析?

用户画像&#xff0c;即用户信息标签化&#xff0c;就是企业通过收集与分析消费者社会属性、生活习惯、消费行为等主要信息的数据之后&#xff0c;完美抽象出一个用户的商业全貌是企业应用大数据技术的基本方式。 用户画像为企业提供了足够的信息基础&#xff0c;能够帮助企业…

ChatGPT最新版带来的多功能批量写作工具激发您的创作

随着人工智能的不断发展&#xff0c;ChatGPT最新版作为一款多功能批量写作工具&#xff0c;为创作者们带来了前所未有的创作体验。它能够通过自然语言处理和机器学习技术&#xff0c;生成高质量的文章、故事、对话等内容&#xff0c;为创作者们提供了无限的创作灵感和可能性。本…

MFC 用Stream读取资源里PNG资源 告别exe文件需要资源跟着

在资源视图里添加资源 导入PNG资源 会自动新建一个PNG的文件夹 这时候 PNG就已经在资源里了 但是CImage只能通过路径或者流的方式来加载 不能根据ID值 我们就自己写个方法 声明 bool LoadImageFromResource(IN CImage * pImage, IN UINT nResID, IN LPCSTR lpTyp);实现 bo…

蓝桥杯专题-试题版-【数列排序】【数列特征】【特殊的数字】【特殊回文数】

点击跳转专栏>Unity3D特效百例点击跳转专栏>案例项目实战源码点击跳转专栏>游戏脚本-辅助自动化点击跳转专栏>Android控件全解手册点击跳转专栏>Scratch编程案例点击跳转>软考全系列点击跳转>蓝桥系列 &#x1f449;关于作者 专注于Android/Unity和各种游…

Unity 桌面精灵+鼠标穿透

透明功能shader: Shader "Custom/MakeTransparent" {Properties {_MainTex ("Base (RGB)", 2D) = "white" {}_TransparentColorKey ("Transparent Color Key", Color) = (0,1,0,1)_TransparencyMargin ("Transparency Margin&qu…

Spring Boot中的@GetMapping注解,如何使用

Spring Boot中的GetMapping注解 介绍 Spring Boot是一个流行的Java框架&#xff0c;它提供了许多方便的注解和工具&#xff0c;使得Web应用程序的开发变得更加容易。其中&#xff0c;GetMapping注解是Spring Boot中最常用的注解之一&#xff0c;它可以帮助开发者定义和处理HT…

C# 多张图片合成一张PDF

我是将每张图片转为byte[]&#xff0c;再将所有的字节数组转为byte[][]&#xff0c;然后对byte[][]进行的处理&#xff0c;大家有其他格式的图片要进行处理的可以先转为上述数据格式。 语种&#xff1a;C# 用到的第三方库&#xff1a;PdfSharp.dll(可直接使用PDFsharp包)&…

C++11右值引用

目录 概念左值和右值左值引用和右值引用 使用左值引用右值引用和移动语义 完美转发万能引用完美转发 概念 左值和右值 左值 左值是一个可以被取地址、修改的对象或变量&#xff0c;其具有固定的内存地址。 左值可以出现在赋值语句的左边&#xff0c;因为它们表示一个可被修…