laravel路由的一些知识
前言:因为刚开始学,代码是根据黑马老师的课程敲的,课程里面说的并不是手册里面的全部。
因此后面还需要通读手册,知道要用到的东西会在什么地方。
附:B站学习地址:https://www.bilibili.com/video/BV1pt411n7Ay?p=13
1、路由配置文件夹
routes 其中web项目的文件为routes/web.php
2、四种常用路由定义
get、post、put、delete
这四种路由中,之哟get请求不会进行csrf验证,其他三种会进行csrf验证。
如果不想某个路由进行csrf验证,那么看之前的博客
https://www.cnblogs.com/ysd-jxt/p/13618344.html
定义方式有两种:
第一种:Route::请求方式($url,匿名函数);
第二种:Route::请求方式($url,'控制器名@操作方法');//这个在后面讲到
2、匹配多个请求方式
Route::match([请求方式,多个以逗号隔开],$uri, $callback);
# 匹配所有请求 工作不用
Route::any($uri, $callback);
3、路由参数
为什么要有路由参数?
因为有时想获取url中的某些片段,比如捕获用户的ID。
路由参数分为必填,可选,参数限制,用法如图:
选填的路由参数,注意要求
正则表达式约束:
为什么要用正则表达约束?
因为想约束参数格式,可以通过加where实现
用法如下图:
4、路由命名
为什么要进行路由命名?
1、调用方便,后期维护也简单
2、更好的跳转,在其他地方引用,route
规则,和where一样,实例后面加上name,
请仔细看下面代码。
1 2 3 4 5 6 7 8 9 | //路由命令配合重定向使用 Route::get( 'user/{id}' , function ( $id ){ echo '路由id' . $id ; })->name( 'user.id' ); Route::get( '/user/2' , function (){ //redirect和route配合使用重定向 return redirect()->route( 'user.id' ); }); |
5、路由前缀
为什么要有路由前缀?
有一组路由,都有相同的路由前缀,那么我们可以把这些路由放入一组中进行定义用prefix方法为路由组增加前缀。
这个分组可以无限的进行,但是为了可读性,2-3层即可
//为路由组增加前缀 Route::prefix('user')->group(function(){ Route::get('upload/{path}', function($path){ })->name('prefix.test'); });
6、命令行查看定义好的路由
php artisan route:list;//须在网站根目录下进行
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】