00:01
这节课来看一下路由,路由的参考手册在这里。当然我们从基础功能去这里找也可以找到啊。这里我列举了现阶段需要学习的一些内容,因为作为手册的话,他把所有路由相关的内容啊都给写出来了,但有些是我们现阶段用不着的,会增加我们的学习成本。先看一看基本的一个路由啊。构建基本的路由只需要一个U和一个B包。这里提供了一个非常优雅的定义路的一个方法。我们路由文件是在啊root目录下定义。这个外部点PPP用于定义外部界面的路由。它会使用这个外部相关的一些中间件,包括这个CSRF保护等功能,而这个API中的这个路由呢,都是无状态的分配给了API中间建筑。我们主要学的是啊web界面。
01:04
它的位置是在root啊,外部点QP可以看到这里有一个。啊,默认的一个路由是请求。我们的根。然后响应的是一个web com的一个页面。好,这些我们都可以删掉注释。在下面去写我们的例子。先看第一个例子,定义一个非常简单的一个路由。只需要使用一个uri加一个B包就可以了。前面的这个根号可以省略,也可以不省略。啊,这样的话,我们在浏览器中去请求这个地址,就可以得到这样的一个响应。来看一下。在这里请求。可以得到这样的一个响应,这是最基本的一个路由,就是由uri加这个一个B包去组成。
02:11
接着往下来看。我们可以使用啊,Root。提供的这个root门面。啊,使用他的一些静态方法去注册。响应任何HTTP请求的一个路由。这些是我们常见的。AETB请求的类型,Get和post是我们比较常见的,而其他的我们也会在学习中。去。啊,不断的去使用。这里可以稍微讲一下,Put主要用于我们的全量更新,比如说更新啊整个啊整条数据,而派系呢,一般是用于啊增量更新。比如只是更新一个状态,禁用和启用之类的,而delete就是用来删除一些数据去使用的方法。那options一般去在这个啊,比如说。
03:03
跨域的时候进行的一个。Cos的一个认证。有时候我们可能需要注册一个可以响应多个APP请求的路由,这时候可以使用match方法,也可以使用any方法。any方法就很好理解了,它会响应这个所有类型的一个请求,而麦方法它只会响应在我们这个数组里面的。这些。请求好。我们试一下这个卖血方法。来粘贴一下。响应。多个请求,这里我们加一下啊,加个麦起。呃,这里我们使用DB啊,不使用return了,DD呢,它是LA提供的一个用于打印和调试的一个。
04:04
辅助函数啊,它会。给我们输出我们打印的一些内容,并且终止脚本的一个执行。现在我们去浏览器测试一下。可以看到。啊,我们的get请求是正常的响应了,我们在浏览器的地址栏中输的这种是get请求啊,那POS请求我们怎么来测试呢?这个时候需要借助一些工具。这里我们使用。普斯的曼。在我们进行一些API测试的时候,POS的慢也是使用比较多的。安装完成之后呢。啊,这里让我们去注册,可以不去注册,点这个啊灰色的就可以跳过。
05:01
这个说明可以关掉,然后点加号去新建一个,这里选择我们请求的方式,我们要测试POS的请求,然后这里输入我们要测试的一个地址。测试麦起。啊,可以看到他给我们的响应是一个419啊,就是没有权限去请求,这是啊拉,为了保护数据。对于这个,呃,Post还有put,还有派delete等一些去啊,修改了数据库的操作。增加了CSR的认证。我们把认证的中间键关掉就可以。找到。APP目录下。HTTP。里面找到外部。路由组。这里有一个。
06:00
CS的一个认证,我们把它给注释掉。这时候就不会进行认证了。这时候我们再去测试。就可以看到我们的POS的方式也可以正常的请求到了。这就是。这个麦起它可以匹配啊,这里面配置的这些请求。那如果不在这里面的这个呢,我们来再换一个方式,比如put。你看一下是不是请求不到。对吧,这里给了我们一个报错信息啊。请求不到。接下来。啊,就是说到了这个CSRF保护这里先了解一下就可以了啊。就是我们如果发起这个post和put part这些请求的话。啊,它会进行这个csf的一个保护。
07:00
这个在我们后续进行表单提交的时候啊,在这个CRF这块会再讲。接下来看一个重定向路由。重定向路由啊,这个比较好理解。就是我们请求这里的时候,会帮我们重定向到这里。啊,这个是root门面提供的方法,来试一下。比如看一下我们现有都有什么路由,现有的是。嗯。我们请求这个负,然后为我们重定向,哪呢?重定向到满。好,我们来拿这两个因测试,也就是我们去请求他的时候,会帮我们重叠到这里。啊,注释写写。测试一下来。现在我们去请求。可以看到,哎,给我们重现到这里了,打开。
08:03
调试,找到network,看一下网络的一个请求,再次发起这个for。看到我们一开始请求的是这个负,但是呢,它给我们返回到302啊,接着呢就给我们重定向到了这里,对吧,但我们一般重定向的这个状态都是301啊,它默认的话是一个302,当然我们可以给他加第三个参数去啊,设置这个重定向的一个状态码。再加第三个中参数。这时候再来去测试一下。还是请求这个否?看这里啊,这里的时候就响应301,然后给我们充电向到这里。这是CT。还有一个是。使用这个它默认就是301啊,跟它是一样的,只不过它默认是302,这两个我们使用哪个都可以。再看一个仕途路。世俗路由呢,使用啊,我有方法。
09:01
他可以直接帮我们去返回一个页面。在他默认提供的这个例子里面呢,它是使用这个我辅助函数去返回的页面,但是如果我们啊,有一个路由,只是单纯的想去返回页面,不做其他的一些操作的话,可以直接使用这个视图路由。Will啊,第一个参数是我们请求的uri。比如我们请求。啊。Well well,然后呢?响应一个页面,因为我们现在只有这一个页面啊,所以我们就还用这个页面,那页面是在哪里呢?页面是在resource。Views目录下看到了吧,它是以雷点PPT结尾的啊,它是这个雷模板那个文件,当然我们使用的时候不用去使用这个后面的这个后缀,直接使用welcome就可以了啊。
10:01
测试一下,看我们请求这个路由会不会到这个页面。可以看到也回到了这个页面,对吧,这个就是啊视图路由。路由参数。有时候我们需要在路由中去捕获一些UR的片段,比如从URL中去捕获用的ID啊,或者我们去查看一篇啊文章的一个详情的话,有时候去捕获这个。啊,文章的一个ID。啊,这时候可以去定义这个。参数路由。首先看看必填参数,必填参数是我们以啊这种大括号给括起来。好,下面我们进行测试,也就是说我们在请求这个优色的时候,必须后面要给上一个参数。
11:06
啊,才可以正常的请求到这个路由,不然的话请求不到,测试一下。有色斜杠。E。是不是请求到了,并且这个参数呢,我们可以通过这个。啊,B包函数里面这个参数给获取到。在以前的版本呢,这两个名字必须一致啊,但是新版本的话是不用一致了,不过我们还是最好去写一致,这样方便我们去做区分。啊,当然啊,这个因为我们没有做这个类型的一个限定啊,也是参数类型的一个限定,所以我们这里啊,请求什么都是可以的,出什么都可以的。如果是多个参数的话啊,就接着写就可以了,然后它们是一一对应的,按照顺序一一对应的。
12:00
在这个,呃,路由中的这个。啊,这个。参数啊,不要使用啊,中横线横号可以使用下划线。然后是一个可选参数,有时候我们一个路由的话,你。可以给也可以不给的话啊,这个参数的话,你就可以加一个问号,就是你写不写都可以。比如我们的。这么一个情况。可选参数路由。我们改个名字吧。那个不和这个用户冲突啊。然后还使用ID。ID等于默认给他零。这个时候来测试一下啊。因为我们这边有个问号,所以是可选的。
13:02
写给12。可以拿到这个参数对不对,但如果我们不写呢。他就会拿这个默认的一个参数啊,这个就是。可选的。一个参数。接下来就是正则表达式啊,我们可以对我们的这个参数呢,进行正则表达式的一个约束,比如对我们刚才的这个。啊ID啊,进行一个。数字的一个。限制。加在这里啊,Where,然后是匹配我们的这个参数名字。后面的这个参数,第二个参数写正则啊,写正则规则。直接写就行,不用再像以前学字的时候去加那个斜杠。啊,现在我们只匹配这个数字来测试一下有水。U,首先你不给参数,你肯定请求不到,没这个方法对吧,你给这个呃,整数的参数肯定是可以请求到,但如果你给一个其他的,比如说字符串的。
14:03
啊,它也是找不到这个,就是用正则表达式去约束我们的请求参数。当然我们还可去改这个文件里面的波的方法,去注册全局的一个约束啊。由命名。啊,路由命名呢。啊,实际上就是。给我们的这个路由啊,取一个别名,这样的话,在我们需要使用到这个路由的时候,也就我们代码中需要使用的这个路由的时候,可以直接使用这个名字,非常的方便,不用去记这么长的一个。啊,路由你现在的看头比较短,但有的时候会很长很长的啊,你记得就不是很方便了。我们可以链式调用,指定一个name属性。来这里看一下啊。
15:12
那怎么测试呢?也就是说我们怎么去使用它呢?可以接着往下看啊。这里是给控制器去命名。一样的啊。当我们学到空气的时候再说这里。需要注意的一点是,这个名字一定是唯一的啊,因为我们要根据这个名字去生成对应的一个URL,所以这个名字一定要是唯一的。接着就是看一下如何去使用,怎么去生成这段二可以使用啊,Root辅助函数。啊,加上这个路由的名字就可以得到啊实际的一个链接来测试一下。在这里啊。可以用我们刚才定义的这个路由名字去生成这个链接。嗯,我们直接滴滴这个URL吧。
16:04
现在我们请请user profile。是不是拿到这个完整的一个链接了,这样我们在写代码的时候就可以使用这个方式去使用这个链接,比如A标签的一些跳转呀,Form表单的一些提交。啊,当然这个路由名字呢,还可以应用于这个重定向的时候去使用。如果是一个啊路由定义的参数的话啊,这种命名路由,我们可以给这个root。去传第二个。啊,参数去生成这种。带有路由参数的命名的。这种URL,这个我们也尝试一下。
17:17
嗯,直接还是在这个里面去。线啊。我们定义了这样一个链接,这样一个圆案。嗯,他要求传入这个ID啊参数。我们的名字要换一换了。换一换。有。点加一个点。啊,它实际上就是字符串啊,你想用什么分隔符都可以啊,使用下划线也行啊,使用驼峰都可以。这里我习惯用点。好,接着我们在浏览器中去测试一下这个请求。
18:01
也就是说啊,这个请求呢,它需要接收一个ID。然后我们是在生成这个链接的时候呢,我们用第二个参数,把ID这个参数给它传过去啊。第二个。参数传递啊,路由参数。好。啊,这个ID我们输入的这个ID,这个ID是我们生成这个URL时候的,不要搞混了。好吧。那我们测试一下user。这里加个ID,我随便写啊,写个123。可以看到是不是给我们啊生成了。这样的一个链接。这个我们写错了,我们是写成这个去了啊,写成这个呢,嗯。
19:02
他因为没有路由参数啊,没有路由参数,所以如如果我们在这里写参数的话,它会就是以这种query的方式问号啊,这种参数的形式给我们附加在后面,这个后面也会再说一下。我把这个改一改。我们要测试的是这个啊。可以看到啊,是不是给我们生成了这个一个。链接。对不对。啊,如果你只有一个参数的话,也就路由只有一个参数的话,还可以怎么去生成呢?先把那个注释掉。只有一个参数可以直接。写到。第二个参数里面啊,可以直接写。那怎么个直接写法呢?
20:00
就是不用数组啊,直接我们把这个值。写到这里啊,因为我们只有一个这个参数的话,它自会自动用这个东西。啊,用这个参数我们再看一下行不行啊。是不是到了这里啊,这是只有一个参数的一个情况下。嗯,这个情况就是说,如果我们。给多了参数啊,他会第一个会去使用,第二个呢,就是以这种。啊,问号的形式去给我们发到后面,刚才我们也演示过了。就当他需要路由参数的时候,他会去匹配他需要的路由参数,它用不着的就会以问号的形式去传在这个后面。嗯,这里它没有说,就是如果我们需要多个参数的话,多个参数的话呢,你是,嗯,用数组去写多个就可以了。
21:06
嗯,在这里尝试一下。多个参数的情况下啊,比如我们user profile这里还要一个。啊。美吧。这里再给一个。这个时候如果我们想要去生成这个命名路由的链接的话啊,因为它有两个参数,ID和name,这时候我们就要选数轴法ID。比如说是一。Name。Right。现在去测试一下这个路由啊。这是在加啊。加一个。
22:01
啊,是不是给我们生成了这个链接,对吧,这个是一,这个是Li。啊,这是命名路由。这些路由就是我们现阶段啊,用得到的比较常用的一些。路由定的一些方式。当然手册里面还有其他很多的一些用法,比如说路由组啊,中间键这些,我们在后续讲解其他的呃功能的时候会穿插着来讲。啊,如果全部讲完的话,大家也比较容易记不住。等用到的时候我们就去选。所以这些手册不是说。啊,这边讲完就不讲了,它的知识点本来就是由浅入深,我们会穿插的去来回的去讲,包括其他的地方在。呃,讲的时候也是一样的。
我来说两句