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,
请仔细看下面代码。
//路由命令配合重定向使用 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;//须在网站根目录下进行