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;//须在网站根目录下进行

 

 

posted @ 2020-09-05 23:48  洛飞  阅读(342)  评论(0编辑  收藏  举报