00:00
在学习了模型之后。接下来就可以看一看路由的一个模型绑定。手册在路由里面啊,从这里可以找到。啊,因为之前没有学这个模型,所以在学习路由这块,我们把模型的这个和路由相关的一个绑定就给调过了。今天来看一看。当我们向路由或者控制器方法注入模型的ID的时候。啊,有时候我们还要检索这个ID存不存在啊,还要通过这个ID去查询对应的一个数据。这样是比较麻烦的。比如我们的,呃,这个博客的一个编辑来看一下。比如我们博客的这个。详情。看编辑页面嘛。再假如我们打开这个博客边界的时候。我们肯定是要通过这个ID啊,去查询这条博客,然后进行编辑,但是。
01:04
有时候这条ID不存在怎么办?我们是不是还要判断这个ID存不存在,然后存在之后呢,还要查询到这个对应的一个数据,对它做进行一个更改,比较麻烦,对吧,但如果使用了啊,这个模型的这个绑定。就比较省事啊,它会根据啊,我们传入的这个。啊,模型的这个ID,然后根据我们要注入的这个模型,它去对应的数据表里面去查这条数据,如果查到了这条数据,就会把这个数据结果给到,啊这个变量如果查不着就会。出现一个错误,比如他这个例子啊,就是优色变量啊,它的这个类型被限制为是优色的一个模型,对吧。所以啊,变量的这个名字呢。啊,又与uri里面这个匹配,因此就是love会自动注入啊与这个。请求传入的这个ID。
02:01
啊。这样的一个用户的一个模型实例,如果未找到这个模型实例,就会抛出这个。四乘四。当然,我们使用这个控制方法,使用的是隐私绑定。啊,也就是说啊,这个user。这个UI短和控制器里面的这个导数就是变量匹配。而且它包含了一个啊,优色的一个类型的一个提示。一起来看一下啊,举个例子。复制一下。在root文件里面进行测试。把这个链接改一改,就改成优。啊,这样我们定义了一个路由请求这个user啊。请求这个user。但是要传入一个user这个ID。在之前呢,我们是通过这个啊,这样的一个方式,直接获取这个参数,对不对,直接获取这个ID,先来看一看能不能获取到。
03:07
都。是不是可以拿到这个ID对吧。啊,如果是啊,之前我们的这种写法,我们还要通过这个ID去查询用户表,看用户存不存在,然后不存在对吧,还要提示他,如果我们要用到用户的信息,也是要先要查到这个用户的一个信息啊,比较麻烦。当我们学了模型之后呢,我们就可以使用啊这个路由的一个模型绑定,也就是说你传入了这个ID之后,我这个参数接触的时候呢,我给你限制一个类型,也就是我需要啊user这个。模型啊,这个类型。啊,接着是一个变量。这样的话呢。我们滴滴下那个U。啊,这样的话,当你传入一个ID的时候,他会用这个ID去这个模型里面去给你查对应的一个模型实例,如果能查着,我们就得到了一个模型实例,就给到这个变量,如果查不着,这个模型实例就会直接给我们返回,返回了一个404。
04:11
下面来看一下。啊,我们还是查这个121。是不是返回了一个404,没有这个用户,对不对,我们查用IDV1的是不是有这个用户,我就得到这个结果啊,这就是路由的这个模型绑定。也就是我们传入路由中里面的。啊,这个ID,然后在B包函数里面,或者在控制器的这个函数里面,我们在接收这个ID的时候,可以加一个模型的这个类的一个限定啊,如果加了这个类的一个限制之后。啊,它就会自动帮我们去注入啊,这个模型类的一个相关的一个实例啊,通过这个ID去注入。啊,如果找不着的时候,就给我们返回404啊,这样的话不用我们去再次去查询数据库做验证,什么存不存在啊,或者取出来这个数据进行使用,直接让这个路由帮我们自动去注入就会比较省事。
05:07
接着看一下,当然默认的是使用这个ID,有时候啊,有的表它不是ID,就是说以外其他的键啊,去做的这个组件可以使用啊,这里去指定。啊,这个列名啊,指定这个列名,拿我们的user来讲啊,有时候我们不用这个ID啊,使用它的email可以吧?啊这时候我们再去查一下这个user。看一看。是不是404,我们没有这个email等于一的吧。啊,因为我们这这里现在现在限定的字段是email,如果我们用冒号这里限定的字段,它在查询这个啊模型的时候,它就会用我们限定的字段去查询。对吧,就是我们传入的这个值啊,传入的这个值,它就会按照我们设定的这个字段去查询这个模型。当然你看我们这里限定的邮箱,所以这里我如果输入邮箱的话就可能。
06:03
查到这个啊用户。是不是?啊,这个是类型啊。啊,一般是呃,这个自定义键名,呃,一般是比较少用的啊,偶尔可能也会用的,我们还是用ID用的多,用ID用的的话直接默认就可以了。清楚吗?啊,直接默认就可以。嗯,还可以在这个模型里面,就是重写它的这个。类啊,这样的话,如果在模型里面去修改了,我们。啊,这个root的这个要使用的一个键的话,你就不用去。在路由里面去写了。刚才用的是隐私的一个绑定,也就是它自动会帮我们去啊注入相关的啊一个类。的一个实例。
07:01
还有一种是显示绑定,显示绑定呢,嗯,就是使用比较麻烦,我们还要在这个root service里面去进行注册,也就是嗯,注册我们要使用的这个。啊,参数给定的这个参数要使用哪个类啊,这样它一个好处的话,就是我们一次性注册,所有用到的地方就会自动帮我们去啊使用。这个是呃,显示的一个绑定。啊,甚至还可以在,嗯这个。里面去重写。我们的一个解析的一个逻辑啊,就是重写一个注,注入的一个逻辑都可以啊。还有一点需要注意,就是我们在使用这个啊,路由的一个模型绑定的时候,如果还使用了其他的一些啊,注入的一些类型,比如这里我们还需要request。这写个逗号。Request。Request。也就是说啊,当我们在使用路由的这个模型的一个自动注入的时候。
08:05
如果还使用了其他的一些类型的注入,比如说这个request,这时候我们把这个request啊,这样的一些注入要写到前面。啊,我们的模型的注入写到后面这里是和我们之前讲这个路由参数的时候是一样的啊,这地方注意一下就可以了。在控制器里面的用法是一样的,这里只不过举例的话,我就在路由里面直接去写这个例子了。
我来说两句