00:00
继续完成其他的功能,比如用户的一个详情。用户的详情啊,我们可以使用。模型的一个注入,直接帮我们注入这个用户的一个实例,因为我们查看这个路由的时候,可以发现这里用户的详情,它这里可以接受一个优色的一个。啊,路由参数对吧,所以这里我们可以使用user模型。去帮我们注入这个优色的实力,来返回这个优,我们看一下有没有拿到这个用户的一个实力。嗯,他的请求方法呢,因为需要路由参数,也是我们要跟上这个路由的,就说用户这个ID才可以啊。来测试一下。先看一个啊。Get方式请求。嗯,直接复制这个地址。好,斜杠跟上用户的ID,我们看看能不能拿到一用户这条数据。
01:01
啊,没有没有投啊,这时候你就不用再去添加了,只要去这个。认证里面去选择我们的认证就行了,它保存了刚才我们之前保存的这个投,这时候再发送。哎,可以看到空啊,并没有拿到啊,用户的这个实力。那为什么呢?我们来打印一下,如果我们就说不使用这个模型注入直接去,呃,输出这个ID的话来看一下。啊,ID是有的,ID是有的,但是他为什么不能帮我们通过这个ID去注入用户的这个实力呢。而我们之前在写这个拉入项目,写任务外部的这种带页面的这种的时候就可以了啊这是。啊,因为中间件的事情啊,我们来看一下中间件的配置文件。就是HTV里面的这个蝌蚪啊。之前我们写web,他用的是这个web的这个啊路由组中间件,那它里面有什么呢?有一个这个它会帮我们处理路由的一个绑定。
02:05
清楚吧。啊,而我们的API并没有应用上,所以我们去复制一下啊这个。中间键手动去加一下。手动去加一个。取个名字叫。Igsr。哎,绑定。好,那这个是路由中间点,也是我们在路由里面去使用它才行找到啊in点配P,我们在路由里面,在这个中间键里面,在这里去使用啊,它现在是一个这个字符串,是不是我们可以把它改成数组,它就支持多个。多个的这个。啊,中间加了来,我们写个逗号。逗号,先把我们的啊这个给写上啊,然后这里加一个数组啊,也就是说之前我们的呃,米德韦尔中间件,我们使用的是它自己是吧,是用字符串,但是现在我们又多了一个,所以用数组把他们给都给包裹起来。
03:04
好,那我们这个参数啊,越来越长是吧。啊,可以把这个参数给这个数值给拿出来啊。PARAM。然后把这个数组给挪出来吗。这样以后我们再加其他东西的时候也比较方便。然后把这个变量放这里。哎,是不是这样也可以啊,这个我们就可以去对它进行一下格式化。包括啊这个我们也可以去格式化一下。这样在添其他中间什么的都比较方便啊。嗯,接下来。我们使用了这个中间键之后,看一看这个路由模型能不能帮我们注入。再次去尝试返回这个user。
04:04
这次是不是可以又拿到用户的信息了是吧,这个可以使用路由帮我们自动去注入这个用户的一个实例啊,但这个格式啊,有时候并不是我们想要的格式,所以。我们可以怎么办呢,返回。啊,使用这个响应啊,生成器去返回啊,配合这个。Transformer this里面的response。啊,因为我们只是返回一条,所以使用item啊do user传进来,使用这个user的这个。接下来看一看。好,是不是数据给我返回了,但是它外面还给我们包裹一层date,对吧,你说我们如果拿个列表,你列表里面可能还能附加其他的信息,比如分析相关信息,你给我个date吧,还能理解,我就拿一条数据,你还给我报过一层贝。对不对,怎么办?我们是不是想办法再把那个date去掉,要不然。
05:02
这个用户啊,其他人在使用的时候还要多加一层啊,多去取取一层里面这个数据。对吧。好,接下来我们想办法把这个date这层给去掉,怎么去呢?可以使用一个组件啊。找到啊,我们的这个组件的这个地址。去搜一下这个订购杠。嗯,一二啊,就是这个啊。啊,它可以帮我们去除。最外层的啊,包裹的那个贝塔,直接执行这个命令安装就可以了,在我们的这个虚拟机里面的项目目录下,然后加上。呃,如果你不会出现内存不足的情况,你就不用加这个,但是我这个虚拟机它老会出现内存不足的一个情况,所以我就啊取消这个康的一个内存限制啊。Me moryy。
06:04
里。等于负一。把这个加上。安装一下。安装好之后呢,你看他说的怎么使用,你在这个中间键里面可以直接啊,这么是使用,是返回这个数组的一行字啊,或者是啊,直接这样使用,或者使用这个我们使用利润就可以了。先让他在这儿安装着,我们去改一下中间键找到路由文件。在这里这时候我们要再加一个中间键了,再加一个它,诶大会给括起来。这样的话。啊,他呢就负责啊,给我们去除最外层那个包裹,他是负责我们路由绑定参数啊好把注释写一下。嗯,减少。啊,穿丝风的包裹层啊。啊,这个是。
07:01
啊,支持这个路由模型注入。看看安装完成没有。安装完成了,来再来进行测试。啊,使用这个中间线。看一下。是不是把date来给我们移出来啊,这时候我们再看一下我们的列表啊,会不会产生什么样的一些不好的一些情况。是发现列表没有变,对不对,好,所以这个专业还是比较好用的。那我们的这个详情就算完成了啊。那接下来。去完成。封禁和启用用户。同样的啊,封禁和启动用户呢,我们看看路由。在这里啊。它也是会接收一个啊用户的一个这个ID,然后加上这个log是不是,所以我们同样可以去使用。模型的注入,帮我们注入用户的一个实力,对吧。
08:01
啊,这个时候我们只要改变它的一个字段就可以了,但是我们现在看一下。哎,我们的用户表。啊,看一下用户表,它只有这几个字段,并没有我们需要控制这个禁用和启用的一个字段,所以我们需要创建迁移文件为用户表啊增加字段。先打开我们的用户呀。看一下他确实是。啊,只有这几个字段,然后我们去创建一个is lock的字段,把它放到email后面。使用命令创建签证文件PP。Make。Migration。Ad啊。Is。Look too。User table指定我们要啊操作的一个表明。
09:01
就是要更新那个表明右侧回撤。这样一个迁移文件就创建完成。在database里面。Migration。我们所有对表,就是说对数据表的一些啊,修改调整增删改查啊,都要通知这个迁移文件来。你不要直接去改数据库。嗯,这样的话,别人拿到你的这个代码,别人进行迁移的时候会发现会少很多东西,所以我们所有对数据库的一些改动都要通过迁移文件来啊,哪怕我们仅仅是修改一个字段,好,这里就可以向我们的用户表去添加一个is lock啊,下划线的一个字段。Table。啊,写我们字段的类型。应该是。就可以了。Is locked。给个默认值DEFAULT1啊,一是表示正常零,我们表示禁用。
10:03
给个注释。是否禁用?也就是说,用户禁用状态。啊,不要长是不较长,我们把那个行换一下。加上说明啊,零禁用一正常用户啊。诶不对,我们这个是一日lock的,那我们就是给默认是零吧,零是正常的。然后就让这个。啊,一一是禁用的,这么去写。啊,这个主要是根据我们的这个字段的名字,你看1LOG是否被锁定,那我们认为就是一是锁定啊。也就是禁用。好,接下来呢。呃,调整一下它字段的顺序,After,让它放到这个email后面。
11:03
好。迁用件写完之后,运行我们的迁移啊,完成迁移。P art make啊,不是make,是make啊。他只会迁移我们新加的这个之前迁移过的呢,他在数据表里面有记录。再看我们的用户表。你在这刷新一下。是不是就多了这么一个字段,默认是零都是正常的,对吧,然后我们去在这里去修改用户,然后依赖注入,把用户的这个模型实例注入进来,去修改它的啊。Is的字段。等于啊,应该是进行一个取反操作,这样的话,我们这样这个方法既能去进入用户,也可以去恢复用户,是不是不用再为这个恢复用户单独去写一套。我们要判断用户的。当前的这个锁定状态,如果你等于零。
12:00
啊。就说。你是不是等于零,如果你等于零的话。啊,我就让你。结果是一,相当于对它的值进行一个取法,如果你原来是一,我给你变成零,最后我们进行C就可以了。来进行保存,最后不要忘了响应return类次啊,因为这是一个更新的一个操作,我们直接返回这个无内容的一个响应204的一个状态啊就可以。Response。No content。哎,这样就完成了用户的禁用。来测试一下。再开个窗口。使用派系方式啊。使用什么方式决定于我们的这个路由里面定义的是什么啊,看一下路由里面定义的是不是这个判刑。来请求的地址,从这边去复制一个。
13:00
啊。请求这个地址,然后user,然后是我们的user ID斜杠后面还要跟一个lock。啊,看一看这个路由就知道,还跟一个lock是吧,这是我们用户的ID,我们用ID填充上,这就是我们请求的这个地址。啊,派系方式。接下来我们执行发送。啊,没有这个这个这个登录的这个权限啊。咱们把这个talking给选上。啊,Be talking,这是我们之前的talking。好204啊,说明更新成功,那去检查一下数据库。把这迁移文件先关掉啊。这是不是就一了对吧,这个用户就被锁定了,那这时候还要去干什么,去修改一下登录,是不是你都被锁定了,我就不让你登录了。是吧?找到登录控制器,Also。好,登录这里。这里进行。认证啊。
14:01
Talking。啊,在这个认证之前呢,我们就需要先去。嗯。查询一下这个用户了,也就是说我们去改一下。他的这个认证的一个规则。是吗?不使用他这种方式了,你使用他这种方式。嗯,也行,不过你提前去查一下啊,检查用户状态。用户状态啊,可以不用在这检查,在他认证通过之后去检查也行啊。在这里啊,检查用户状态。先获取用户信息。啊,因为我们这里进行了这个认证啊,所以这里可以直接拿到这个用户的信息。通过also。辅助函数。使用这个。
15:01
我们判断啊,如果用户的这个意思。Locked啊,就是等等于一,就是被锁定了啊给他。返回一个错误消息啊。This response。Error,返回一个没有权限的error啊,用户被锁定。啊,就直接被锁定也可以,接下来我们试一下啊,我们之前锁定的这个用户是谁,是这个一是不是。那我们登录的时候拿了一个依赖进行测试啊。改成。A。是不是给我抛了一个403没有权限的一个。一个异常就是被锁定了。啊,如果你是其他的用户,比如说C用户。
16:01
我们再加一个吧,不,每次太麻烦,没有 Cc.com。好,这个我们就取消掉啊。如果是正常的用户。可以大到头对吧,如果是被锁定的。就是被锁定了,这样我们的功能就算完善了。啊,一定你在写一个功能的时候,要想到其他地方所依赖的一些。地方,比如我们锁定了用户,那你就要想到我既然锁定了,我肯定不能让那些被锁定的去登录。这样吗?那用户相关的功能我们暂时先写到这里啊,随着我们项目的进展,如果要对用户相关的功能进行扩展的话,我们再进行扩展。
我来说两句