当前位置: 首页 > 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文库 本文将介绍如何使用微软语音合成工具和前端技术栈进行开发,…...

nli-distilroberta-base实际项目:新闻摘要与原文蕴含关系自动评估

nli-distilroberta-base实际项目:新闻摘要与原文蕴含关系自动评估 1. 项目概述 在新闻媒体和内容创作领域,如何快速评估一篇摘要是否准确反映了原文内容一直是个挑战。传统的人工审核方式效率低下且成本高昂。nli-distilroberta-base项目正是为解决这一…...

OFA-VE开源多模态分析系统:GPU算力优化部署实操手册

OFA-VE开源多模态分析系统:GPU算力优化部署实操手册 1. 系统概述与核心价值 OFA-VE是一个基于阿里巴巴达摩院OFA大模型构建的多模态推理平台,专门用于分析图像内容与文本描述之间的逻辑关系。这个系统不仅能看懂图片内容,还能理解文字描述&…...

定制属于自己的AS-I总线

本公司自己已经完成AS-I总线主站、电源、从站模块的纯国产化,可以基于AS-I总线的基础上进行拓展,欢迎有需求的、有想法的各类人士一起撑起AS-I国产化一片天...

FinalBurn Neo技术指南:现代设备复刻街机厅沉浸体验全攻略

FinalBurn Neo技术指南:现代设备复刻街机厅沉浸体验全攻略 【免费下载链接】FBNeo FinalBurn Neo - We are Team FBNeo. 项目地址: https://gitcode.com/gh_mirrors/fb/FBNeo 如何在现代设备上复刻街机厅的沉浸体验?FinalBurn Neo(FBN…...

别再只查‘待办’了!Flowable任务查询的三种高级场景:拾取、归还与候选组权限控制详解

Flowable任务管理的三大高阶场景:从候选池到个人待办的完整控制策略 当我们在处理业务流程自动化时,任务管理往往是最容易被简化的环节。大多数开发者止步于基础的待办列表查询,却忽视了任务流转过程中的精细控制。本文将带您深入Flowable任务…...

从“看见光点”到“看懂世界”:视觉重建让这个世界变得更近一些

三十多年前,“让盲人重新看见”更像一句带有未来感的科学想象。而今天,这件事已经进入临床试验和真实的人体研究。视觉重建之所以被视为脑机接口里最具挑战性的方向之一,不只是因为它要解决“能不能刺激大脑”的问题,更因为它要回…...

别再只会用Arduino了!用ESP8266+MicroPython快速搭建你的第一个物联网小项目(附完整代码)

用MicroPython解锁ESP8266的物联网潜能:10分钟搭建温湿度监测系统 当提到物联网开发时,大多数人的第一反应可能是Arduino和C。但今天,我要带你体验一种更高效、更友好的方式——MicroPython。这种基于Python的嵌入式编程语言,让物…...

基于RK3506与LVGUI的CyberGear电机交互式控制台开发实践

1. 从零搭建CyberGear电机控制环境 第一次拿到RK3506开发板和小米CyberGear电机时,我花了整整两天时间才把基础环境搭好。这里分享几个关键步骤,帮你避开我踩过的坑。 硬件连接部分要注意XT30PB插头的防呆设计,插反了会烧毁接口。建议先用万用…...

Unity UGUI实战:手把手教你打造一个可拖拽、可弯曲的UI连线组件(附完整源码)

Unity UGUI实战:打造可拖拽、可弯曲的智能连线系统 在游戏开发中,可视化连接系统是构建技能树、流程图、科技树等复杂UI结构的核心组件。传统实现往往局限于静态线条或简单的直线连接,缺乏交互性和动态美感。本文将带你从零构建一个支持实时拖…...

从零构建uWSGI-Nginx-Flask-Docker镜像的5个核心步骤

从零构建uWSGI-Nginx-Flask-Docker镜像的5个核心步骤 【免费下载链接】uwsgi-nginx-flask-docker Docker image with uWSGI and Nginx for Flask applications in Python running in a single container. Optionally with Alpine Linux. 项目地址: https://gitcode.com/gh_mi…...