当前位置: 首页 > news >正文

Thinkphp 6.0路由的定义

本节课我们来了解一下路由方面的知识,然后简单的使用一下路由的功能。


一.路由简介


1. 路由的作用就是让 URL 地址更加的规范和优雅,或者说更加简洁;
2. 设置路由对 URL 的检测、验证等一系列操作提供了极大的便利性;
3. 路由是默认开启的,如果想要关闭路由,在 config/app.php 配置;
 

// 是否启用路由
'with_route' => false, 

4. 路由的配置文件在 config/route.php 中,定义文件在 route/app.php;
5. route 目录下的定义文件的文件名随机,都有效,或多个均有效果;
6. 创建一个 Address 控制器类,创建两个方法,具体如下:

class Address
{
public function index()
{
return 'index';
}
public function details($id)
{
return 'details 目前调用的 id:'.$id;
}
}


7. 为了让我们路由的课程观看更加直观,我们采用内置服务器的方式来演示;
8. 通过命令行模式键入到当前项目目录后输入命令:php think run 启动;
9. 此时,public 目录会自动被绑定到顶级域名:127.0.0.1:8000 上;
10. 我们只要在地址栏键入:http://localhost:8000 或(127.0.0.1:8000)即可;


二.路由定义


1. 在没有定义路由规则的情况下,我们访问 address/details 包含 id 的 URL 为:
http://localhost:8000/address/details/id/5 //或者.../id/5.html
2. 将这个 URL 定义路由规则,在根目录 route 下的 app.php 里配置;

Route::rule('details/:id', 'Address/details');


3. 当配置好路由规则后,会出现非法请求的错误,我们需要用路由规则的 URL 访问;
http://localhost:8000/details/5 //或者.../details/5.html
4. rule()方法是默认请求是 any,即任何请求类型均可,第三参数可以限制:

Route::rule('details/:id', 'Address/xxx, 'GET'); //GET
Route::rule('details/:id', 'Address/xxx, 'POST'); //POST
Route::rule('details/:id', 'Address/xxx, 'GET|POST'); //GET 或 POST


5. 所有请求方式(快捷方式):GET(get)、POST(post)、DELETE(delete)、PUT(put)
 

PATCH(patch)、*(any,任意请求方式)
Route::get(...)、Route::post(...)、Route::delete(...)... 

6. 快捷方式,就是直接用 Route::get、Route::post 等方式即可,无须第三参数;
7. 当我们设置了强制路由的时候,访问首页就会报错,必须强制设置首页路由;
8. 开始强制路由,需要在 route.php 里面进行配置,然后配置首页路由;

'url_route_must' => true,
Route::rule('/', 'Index/index'); //反斜杠就是首页默认访问的地址


9. 在路由的规则表达式中,有多种地址的配置规则,具体如下:

//静态路由
Route::rule('ad', 'Address/index');
//静态动态结合的地址
Route::rule('details/:id', 'Address/details');
//多参数静态动态结合的地址
Route::rule('search/:id/:uid', 'Address/search');
//全动态地址,不限制是否 search 固定
Route::rule(':search/:id/:uid', 'Address/search');
//包含可选参数的地址
Route::rule('find/:id/[:content]', 'Address/find');
//规则完全匹配的地址
Route::rule('search/:id/:uid$', 'Address/search');


10. 路由定义好之后,我们在控制器要创建这个路由地址,可以通过 url()方法实现;
 

//不定义标识的做法
return url('Address/details', ['id'=>10]);
//定义标识的做法
Route::rule('details/:id', 'Address/details')->name('det');
return url('det', ['id'=>10]);

相关文章:

Thinkphp 6.0路由的定义

本节课我们来了解一下路由方面的知识,然后简单的使用一下路由的功能。 一.路由简介 1. 路由的作用就是让 URL 地址更加的规范和优雅,或者说更加简洁; 2. 设置路由对 URL 的检测、验证等一系列操作提供了极大的便利性; …...

Kafka系列之:深入理解Kafka集群调优

Kafka系列之:深入理解Kafka集群调优 一、Kafka硬件配置选择二、Kafka内存选择三、CPU选择四、网络选择五、生产者调优六、broker调优七、消费者调优八、Kafka总体调优一、Kafka硬件配置选择 服务器台数选择: 2 * (生产者峰值生产速率 * 副本数 / 100) + 1磁盘选择: Kafka…...

creator-泄漏检测之资源篇

title: creator-泄漏检测之资源篇 categories: Cocos2dx tags: [creator, 优化, 泄漏, 内存] date: 2023-03-29 14:48:48 comments: false mathjax: true toc: true creator-泄漏检测之资源篇 前篇 资源释放 - https://docs.cocos.com/creator/manual/zh/asset/release-manager…...

【DevOps】Jenkins 运行任务时遇到 FATAL:Unable to produce a script file 报错(已解决)

文章目录一、问题描述二、定位原因三、解决方案四、其他方案五、总结关键词: Jenkins、Unable to produce a script file、UnmappableCharacterException、IOException: Failed to create a temp file on一、问题描述 由于使用的 Jenkins 存在安全漏洞(…...

Web前端

WEB前端 HTMLCSSJavaScriptjQuery(js框架)Bootstrap(CSS框架)AJAXJSON 文章目录 WEB前端WEB前端三大核心技术Web开发工具文本编辑器集成开发环境(IDE)浏览器选择HTML什么是 HTML?HTML版本变迁HTML-HelloWorldHTML 文档 = 网页HTML 标签属性(Attribute)HTML 常用标签...

资源操作:Resources

文章目录1. Spring Resources概述1.2 Resource 接口1.3 Resource的实现类1.3.1 UrlResource访问网络资源1.3.2 ClassPathResource访问类路径下资源1.3.3 FileSystemResource访问文件系统资源1.3.4 ServletContextResource1.3.5、InputStreamResource1.3.6、ByteArrayResource1.…...

GDB调试的学习

很早就想在好好学一学gdb了,正好最近学算法(以前一直以为干硬件不需要什么特别厉害的算法,结果现在卷起来了。大厂面试题也有复杂一些的算法了) 下面的这些命令是别的博主总结的 GDB 调试过程_gdb调试过程_麷飞花的博客-CSDN博客…...

熵值法综合评价分析流程

熵值法综合评价分析流程 一、案例背景 当前有一份数据,是各品牌车各个维度的得分情况,现在想要使用熵值法进行综合评价,得到各品牌车的综合得分,从而进行车型优劣对比,为消费者提供购车依据。 数据如下(数…...

使用Python Pandas库操作Excel表格的技巧

在数据分析和处理中,我们经常需要对Excel表格进行操作。Python Pandas库提供了丰富的API来读取、写入、修改Excel表格。本文将介绍如何使用Python Pandas库操作Excel表格,包括向Excel表格添加新行、创建Excel表格等。 1.向Excel表格添加新行 下面是一个…...

LeetCode练习七:动态规划上:线性动态规划

文章目录一、 动态规划基础知识1.1 动态规划简介1.2 动态规划的特征1.2.1 最优子结构性质1.2.2 重叠子问题性质1.2.3 无后效性1.3 动态规划的基本思路1.4 动态规划基础应用1.4.1 斐波那契数1.4.2 爬楼梯1.4.3 不同路径1.5 个人总结二、记忆化搜索2.1 记忆化搜索简介2.2 记忆化搜…...

基于正点原子F407开发版和SPI接口屏移植touchgfx完整教程(一)

一、相关软件包安装 1、打开cubemx包管理器 2、安装F4软件包 3、安装touchgfx软件包 二、工程配置 1、新建工程 2、sys配置 3、rcc配置 4、crc配置 5、添加touchgfx软件包 6、配置touchgfx软件包 将width和height改为自己屏幕尺寸 7、生成工程 三、代码修改 1、将屏幕相关驱…...

Linux--进程间通信

前言 上一篇相关Linux文章已经时隔2月,Linux的学习也相对于来说是更加苦涩;无妨,漫漫其修远兮,吾将上下而求索。 下面该片文章主要是对进程间通信进行介绍,还对管道,消息队列,共享内存,信号量都…...

hadoop伪分布式集群搭建

基于hadoop 3.1.4 一、准备好需要的文件 1、hadoop-3.1.4编译完成的包 链接: https://pan.baidu.com/s/1tKLDTRcwSnAptjhKZiwAKg 提取码: ekvc 2、需要jdk环境 链接: https://pan.baidu.com/s/18JtAWbVcamd2J_oIeSVzKw 提取码: bmny 3、vmware安装包 链接: https://pan.baidu…...

Qt 中的信息输出机制:QDebug、QInfo、QWarning、QCritical 的简单介绍和用法

Qt 中的信息输出机制介绍QDebug在 Qt 中使用 qDebug输出不同类型的信息浮点数:使用 %!f(MISSING) 格式化符号输出浮点数布尔值:使用 %! (MISSING)和 %! (MISSING)格式化符号输出布尔值对象:使用 qPrintable() 函数输出对象的信息qInfoqWarnin…...

C++读写excel文件的的第三方库

一、比较流行的库 1. OpenXLSX 用于读取、写入、创建和修改 Microsoft Excel (.xlsx) 文件的 C 库。 2. xlnt xlnt 是一个现代 C 库,用于操作内存中的电子表格以及从 XLSX 文件读取/写入它们,如ECMA 376 第 4 版中所述。xlnt 1.0 版的首次公开发布是在 …...

【关于Linux中----多线程(一)】

文章目录认识线程创建线程线程优点和缺点创建一批线程终止线程线程的等待问题认识线程 在一个程序里的一个执行路线就叫做线程(thread)。更准确的定义是:线程是“一个进程内部的控制序列”一切进程至少都有一个执行线程线程在进程内部运行&a…...

2023年全国最新安全员精选真题及答案34

百分百题库提供安全员考试试题、建筑安全员考试预测题、建筑安全员ABC考试真题、安全员证考试题库等,提供在线做题刷题,在线模拟考试,助你考试轻松过关。 11.(单选题)物料提升机附墙架设置要符合设计要求,但…...

数据出境是什么意思?我国数据出境合规要求是什么?

随着经济全球化深入以及云计算等技术的发展,数据在全球范围跨境流动。数据跨境在促进经济增长、加速创新的同时,对数据主权、数据权属、个人信息保护等一系列问题逐渐浮出水面。今天我们就先来了解一下数据出境是什么意思?我国数据出境合规要…...

Liunx——Git工具使用

目录 1)使用 git 命令行安装 git 2)在 Gitee 创建仓库 创建仓库 3)Linux克隆仓库到本地 4)提交代码三板斧: 1.三板斧第一招: git add 2.三板斧第二招: git commit 3.三板斧第三招: git push 5)所遇…...

微软语音合成工具+基于Electron + Vue + ElementPlus + Vite 构建并能将文字转换为语音 MP3

微软语音合成工具基于Electron Vue ElementPlus Vite 构建并能将文字转换为语音 MP3 资源下:微软语音合成工具基于ElectronVueElementPlusVite构建并能将文字转换为语音MP3资源-CSDN文库 本文将介绍如何使用微软语音合成工具和前端技术栈进行开发,…...

Taotoken Token Plan套餐为高频用户带来的长期成本优势感知

🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 Taotoken Token Plan套餐为高频用户带来的长期成本优势感知 对于高频使用大模型API的开发者或团队而言,项目开发中的模…...

ESUM模型:统一处理多拜耳模式的去马赛克技术

1. 去马赛克技术演进与多拜耳模式挑战去马赛克(Demosaicing)是数字图像处理中一项基础而关键的技术,它负责将传感器捕获的原始马赛克数据转换为全彩色图像。传统单拜耳(Single-Bayer)模式采用RGGB排列,每个…...

listmonk CI/CD安全扫描集成:在部署前发现漏洞

listmonk CI/CD安全扫描集成:在部署前发现漏洞 邮件营销系统作为企业与用户沟通的重要渠道,其安全性直接关系到用户数据保护和品牌声誉。根据行业统计,超过68%的邮件系统漏洞是在生产环境中被发现的,而此时修复成本已增加10倍以上…...

钉钉机器人消息解析器:基于JSON Path与模板的自动化数据提取方案

1. 项目概述:一个钉钉消息解析器的诞生最近在做一个内部自动化工具时,遇到了一个挺有意思的需求:需要把钉钉机器人推送过来的消息,从原始的、结构复杂的JSON格式里,精准地“抠”出我们关心的业务数据。比如&#xff0c…...

HiveWE魔兽地图编辑器:5分钟快速上手指南,告别卡顿创作新时代

HiveWE魔兽地图编辑器:5分钟快速上手指南,告别卡顿创作新时代 【免费下载链接】HiveWE A Warcraft III world editor. 项目地址: https://gitcode.com/gh_mirrors/hi/HiveWE 还在为《魔兽争霸III》原版地图编辑器缓慢的加载速度和繁琐的操作而烦恼…...

KAN神经网络在GPT架构中的可解释性实验与实现

1. 项目概述:当KAN神经网络遇上GPT,一场关于可解释性的实验最近在开源社区里,一个名为“kan-gpt”的项目引起了我的注意。这个项目将两个看似不相关的领域——KAN(Kolmogorov–Arnold Networks)神经网络和GPT&#xff…...

Rviz Publish Point进阶玩法:打造你的交互式机器人任务编辑器

Rviz Publish Point进阶玩法:打造你的交互式机器人任务编辑器 在仓储巡检、展厅导览等场景中,机器人需要频繁执行多目标点任务序列。传统编程方式每次修改路径都需要重新编译代码,而Rviz的Publish Point功能配合定制化开发,可以将…...

别再被Word折磨了!百考通AI让你像“玩填空”一样搞定本科论文

论文写作不再是一座孤岛,而是一次有条不紊的旅程 又到了一年毕业季,朋友圈里开始交替出现两种状态:一种是晒答辩通过、手捧鲜花与导师合影的“上岸”喜讯,另一种则是深夜凌晨发出的、配着空白 Word 文档截图的“崩溃文学”。 “开…...

AI智能体链上记忆库:赋予智能体历史感知与持续学习能力

1. 项目概述:一个为AI智能体打造的链上记忆库如果你正在构建一个能够自主执行复杂链上操作的AI智能体,比如一个能帮你分析代币趋势、自动执行交易策略的“加密交易员”,或者一个能管理DAO金库、处理社区提案的“链上管家”,那么你…...

38岁大厂P9被裁后卖保险:成年人的职场,没有铁饭碗

来自:推荐一个程序员编程资料站:http://cxyroad.com副业赚钱专栏:https://xbt100.top2024年IDEA最新激活方法后台回复:激活码CSDN免登录复制代码插件下载:CSDN复制插件以下是正文。01 | P9也不是免死金牌最近在网上看到…...