00:00
接下来。呃,应该对我们添加的这个数据做一些其他的一个限制啊,比如说看看都有什么要限制的,其实主要是这个分类这一块吧,对吧。啊。好,也就是说在插入之前,我们对这个分类。啊,进行一些检查。以下检查啊。啊。啊,为什么我们要在这写呢?你不能相信前台传给你的数据,一定我们在后台做好所有的这个验证啊,只能使用三级分类啊,你不能往这个一级和二级的这种顶级分类去加这个商品,并且。商品不能被禁用。啊,不是商品是分类啊,分类不能被禁用对吧。啊,就你不能使用一个已经被禁用的一个分类,那接下来。
01:03
啊,我们就去检查一下这个商品find通过request里面提交的啊,这个分类的这个ID。来查询这个商品的这个信息啊,如果。他。不存在啊,也就是说不存在。啊,如果它不存在,我们直接return。Return this response啊这种的,我们直接给一个这个error就可以了,给一个这个bad request error就错误的一个请求,把错误消息给他提示上,然后是一个啊分类不存在。不存在啊,接着复制一下啊。那如果你的这个分类存在了,但是你的这个。
02:03
Station。等等于零了,也就是你分类被禁用了是吧。分类被禁用。是不是,那如果你的分类又没被禁用,分类又存在了?那接着什么呢?我们判断它的level。VEL啊,不等于三。也就是我们告诉他。只能向。三级分类。添加商品是不是。好,这样我们把这个验证去。给上。接下来我们来。一次检查一下,先看一个分类不存在的情况啊,我随便分类不存在,我就随便写了,这个分类肯定不存在嘛。是不是400分类不存在,那接着去看我们的分类表。啊,去找一个被禁用的。这个八是联想飞机用的是吧,而且它是三层级,肯定是对的。
03:00
传一个。三啊,不对,是八,ID是八。啊,分类被禁用,那我们去选一个一级分类啊,或者二级分类,我们选个电脑选四,看看让不让添加。是不是只能向三级分类添加商品,好,这样的话我们添加商品啊,就算是写完了,该加的验证也加上了啊,那有了商品呢。我们就可以去写我们的列表,这样就有数据看了啊,接着往这个七里面我们再多加几条。来往这个七里面多加几条,因为没有做这个唯一性的一个验证,所以我这样一直点啊,一直点是可以多加几条的啊。嗯。我突然发现。我们是不是漏了很重要的一个字段标题?
04:00
对吧,你看我们的表里面。是不是表里面也没有标题?这就有问题了吧?商品少个字段是不是?少个这个标题字段,Title。嗯,这时候呢,因为我们是刚写项目发现的这个问题,所以有几个处理方式啊。一个是。啊,我们进行回滚,就撤回这个迁移的这个表。啊,撤回这个迁移的表,然后去。修改这个就可以了,再一个就是我们在写一个追加字段的一个迁移。啊,我们就直接回滚吧。打开终端啊,执行回滚命令,Artisan。Migrate。冒号入。啊,回滚,上一次的一个迁移好这个表就没了回滚了,接着把我们的title字段给加上,啊把这个给给忘了。
05:02
见表的时候抬头。商品的标题好,这个加好之后呢,啊,就可以去重新执行我们的迁移啊。这时候表里面就有这个字段,同时你还要去改我们的表单验证啊,是需要这个抬头的。验证规则MAX25。好,接着去改模型。商品的模型。在model表里面。加上啊title也可以批量赋值。好。接下来。刷新一下,看看商品表。
06:02
啊,这时候。就有title这个字段了啊,那我们再次进行添加。加一个开头。电脑一啊。从上面去。电脑一。Talking。有问题啊,你再生成一个。好添加成功啊,接着去改一改,再添加个电脑二。
07:07
三。四。行,咱就添加这六条商品,好吧,来看一下数据库啊。有这么电脑123456啊,当然其他都一样啊,我只是改了这一个。这样我们添加才是完成了啊。才真正完成了之前啊,漏掉了一个标题的一个字段啊。好,接下来就可以写我们的商品的列表,因为商品的列表我们主要做的是一个搜索和一个分页啊,所以搜索的话就涉及到。获取这个请求的一个参数,我们先把这个request写上啊。嗯。来。商品的列表请求什么地址呢?把这先关掉,Get。
08:01
啊,还是请求啊,这个地址只不过是get的方式,这是我们的商品的一个列表。啊,当然现在。嗯,就是没有选择talking啊,把他给你选上。嗯,现在是没有任何返回对吧。没有写任何内容。那接着来写我们的商品的列表。先写一个最简单的列表,查询所有的商品。商品模型。哦。然后这个。商品。啊,这是最简单的例子。来看一下。是不是有数据了,对吧。啊,并且我们的这个P还是个数组,好,还有这个时间。接下来我们。干什么呢?为它加上分页。
09:01
分页的话呢,就要使用。啊,分页的方法啊,那如果我们直接这么去返回这个分页的话呢。看看它这个格式啊,并不是。啊,并不是很好,还有这个当前页,还有date还有什么的是吧。啊,接下来我们使用什么使用。API提供的transform。来进行我们的列表的一个。一个使用啊,所以。创建一个。啊,全。找一下啊,先把它全部折叠,有点乱啊。APP里面transform user transform,我们复制一个改成啊商品的transform。把这个类改一改啊好,接着字段的话,这里我们就看看要返回什么字段。啊,Title好,这个也得改一改啊,改成good。
10:01
Good啊,这里就不要了。啊,接下来我去哪复制一下,快一些去这个模型。里面啊。去request里面吧,去复制一下。好,谢谢啊。找到这里放这。好,接下来。把这些内容啊都给换掉啊。好。
11:00
把属性替换一下啊。是不是还有几个没有写的属性,比如这个是否上架,是否推荐。And is on。是否上架?Is。是否推荐?还有我们的时间是不是?还有更新时间。好,这样我们的transform啊就创建好了啊,接下来在返回的时候使用。This response,返回一个集合啊,哦,不是我们返回一个分页啊,不是集合。
12:07
然后把我们的这个数据啊放进来使用。商品的这个穿刺分母进行数据返回的一个格式化,接下来再来看一看我们的列表数据。好,这是我们的date啊,我们的一条一条的数据,然后下面有我们M里面标签里面有我们分页相关的信息,对不对,然后我们数据比较少,所以分页的话,我们就每条就是每页显示两条啊。看一看来。好,现在只有啊,只有两条数据。啊,当然啊,这个数据是我们格式化后的。是吧?啊。那大家可能有一个疑问。那我这个分类ID,我要把它转成具体的一个分类的名字来进行显示吧,我不可能说啊,我别人使用我的接口,然后。
13:02
啊,我给他一个这个ID,他在就是使用这个ID再去查询我数据库,或者请求我接口去换这个分类那个名字肯定不这样吧,我们是不是要把这个分类ID给他吹好。是不是啊,有有这么几种处理方式啊,当然你可以在这个transform里面,比如说你可以在这里面去加一个。啊,分类的一个。名字是吧,Name啊,然后这里用分类的ID,你去查询啊,分类的这个数据库是不是,然后去。啊,范当然这么去写啊,我们来看一看行不行。是不是可以的,你看都是分类的名字对不对,好。啊,今天呢,我们换一种写法。换一种就是可以让使用接口的人去自己去决定我要不要拿这个分类信息的一种写法。对吧。好,我们这个先注释掉啊,这个方法肯定是可以的啊,这个方法啊是可以的,我就先注释掉啊。
14:03
接下来换种什么写法啊,使用银可,也就是说让使用接口的这个人去决定他要不要拿这个数据,但是现在是没有的是不是。啊。那我可以在这里去写啊,一个。啊的方法,然后是我要加载的一个名字啊小写啊。我要包含谁呢,Cat?好。那这里啊,有一个参数,就是我们可以依赖注入进来啊,我们的商品的这个模型啊。啊,当然。啊,这里面就可以去返回我们要包含的一个数据。使用这个你去加载这个额外的信息啊,你要去你的这个模型里面去创建,就是它和这个分类的一个关联。
15:02
啊来去到这个里面创建一个商品和分类的一个关联。那商品和分类是什么关系啊,是不是商品所属的一个分类。所属的这个分类对不对,Return this啊,它应该是belongs to。啊,分类啊。Class。那关联的这个键呢,就是。啊,C的ID啊,主件就是这个ID好定一行模型中定义行我们的这个模型关联之后接着去改我们的transfer。来。啊,在这里啊,去return。就是分类相关的这个数据啊,当然要使用API的这个响应生成器去返回。
16:01
听了吧,来,Return。This啊,我们返回一个item分类的话,就是说它一个商品是只有一条这个分类的一个信息,对吧,这里啊。写我们分类的一个数据,分类的一个数据,但是。啊,你这么直接去返回的话。啊,它会报错的,来看一下,因为你要使用这个响应生成器,我们这边还有第二参数要接收一个。就是分类的一个transform的一个类。我们来使用一下试试。好,发送。嗯,你会发现啊,没有多属性,也没有包色对不对,说明这个没有生效。那么要怎么使用呢?加上这个银可录的啊,哎,填上我们要使用的,就说要加载它关联的一些数据,CTTY,好,这个名字就是我们这个银可录的这个名字这个小写啊,接着来试一下看一看啊。
17:00
你会发现啊,说没有任何反应,说明我们这个还没有生效。对吧。Transform还有一个属性啊,这个属性是配置了我们可用的一些关联啊,一个是保护力属性。在这个类的上面去,在这个函数上面去写啊,写到这个类里面有个AV,哎,这里面是一个数组定义了,我们可以去使用的一些关联,这里我们定义一张我们名字。好。接下来啊,再去使用。是不是就用到这个方法了,是不是,但是它告诉我们少参数啊,我们使用了这个item是少了一个这个一个传form的一个第二个参数,一个类是不是好,那接下来怎么办?接下来我们去啊写这个分类的这个传次方母。来复制一个啊,复制个用户的改成。Cat。92Y。
18:01
好,这是分类的传输缝啊,这里我们就啊接收一个先把这里改了C,然后这里要分类的一个模型。Do啊,这个用户的就不要了啊,ID我们继续返回name继续返回其他的时间什么的。就不要了吧。就返回这俩就可以了,ID和name。啊,然后定义好这个分类的这个传输form呢,我们就要在商品的传输里面,就是返回这个关联的这个分类的数据的时候啊,要去加上。是什么?你有一个分类的传数目。这是再试一下啊。看能不能给我关联上分类的一个数据。往下找,是不是有一个分类的一个数据还给我们自动关联上了吗。所以说我们要想使用到这种银可录的这种关联的这种方式的话,就是用户可以传也可以不传,你看用户如果不加这个银可乐参数,就没有包含的分类的一个数据,是不是如果他加了这个参数,就会有这个数据。
19:05
对吧,是不是可以让用户自己选择你要关联的数据,当然我们要关联其他数据还可以啊,一直在往下写啊,在上面的数字配一下就可以了啊,我先把这个注释写一写啊。啊,额外的数据啊。额外的啊,分类数据啊,你要想使用这种银可的额外的这个分类数据,一定要注意几个地方啊,一个是这个名字啊,再一个是我们在返回数据的时候要使用这个,还有就是你对外能提供的能访问的一些include的一些额外的一些数据,要在这边去配置。这什么?啊,主要这几个地方需要注意。啊。接下来继续优化我们的列表,我们分页是有了,但是我们还要支持一些搜索商品列表,我们主要支持的搜索有什么呢?有这个标题的一个。模糊的一个搜索,再然后是这个。
20:00
啊。这个是否上架的啊,就是我比如说搜索上架的和搜索这个下架的对吧,再一个就是是否这个推荐的,我搜索所有推荐的和这个不推荐的啊,或者全部的是不是再后是什么呢?是这个。啊,这个。关于这个分类的啊,是从某一个分类的。啊,接下来我们就依次写下,当然搜索的话呢。啊,我们还是使用我们的问方法,就是当你传到这个搜索条件,我就给你进行搜索,你不传我就啊不给你。就是进行搜索,哎,所以先获取到我们的搜索条件,比如说title啊,等于request好获取,你可以直接这么去获取也行啊,当然因为我们是query传参嘛,也可以使用query啊,或者使用input都可以啊。啊,抬动接着啊,我把这几个都写一下啊。
21:00
分类。啊,分类ID。接下来是我们的啊,Is on是否上架,还有我们的is。这个是否推荐?这个获取的参数改一改。哎,这是我们的搜索条件,那这里我们要啊改改了要加上这个温。写上我们的title啊。当你传了这个title的时候,我就给你。进行这个抬头的一个查询,好,这里面有一个查询构造器啊。
22:05
当你传到这个title啊,我不用写也可以啊,直接这么去写也行啊,你写也行啊query。Where啊,抬头。Like,做一个简单的一个模糊搜索,用白用双引号可以直接写变量啊。百分号某个数字抬头。哎,就是当你传了这个。这个这个态度的情况下啊。两个箭头。其他的一样处理啊,其他的这个怎么处理呢,就有一些。啊,这个也好处理啊,我们直接的去写一个温就可以了嘛。啊。把箭头给连上。呃,当你传了这个。分类啊,传到这个分类,我就查询分类did的话直接用等于就可以了。就是分类ID等于你要搜索的这个分类。
23:04
哎,这就可以了,比较不好处理的是这个is on和is啊command推荐,因为他们有一个零,我们知道零的话,它会给我们转false是进进入不了这里面的。听什么?啊,所以说不好处理的是什么,是是这个东西啊,这个东西。Is啊。等于一。啊。那这个不好处理啊,不好处理怎么办呢?我们在这打印一下,看我们不传的时候,它是什么样的一个值。打印去这里面看,里面看是一个no是吧。啊,也就是说。为no的情况下是不存在的啊,我们这里应该可以给个值,给个这个false的一个问值,当你不不传的时候给false啊,然接着来判断一下它。
24:02
啊,是不是false了啊,我为什么给一个默认值,就是说你不传的时候给false呢,因为给了false之后,这边我就可以用完全的这个啊,全等于去判断。也就是说,当你啊不全等于false的时候。哎,我就给你查询,这样的话零也就过来了,零也能查询到是不是啊,同样的啊,这个的处理是否推荐的处理也是一样啊。也是你不传就给你个force,然后在使用的时候呢。换个行啊,怎么去点。在使用的时候啊。就判断它的这个值是不是false,这样的话零和一都能过来用全等于去判断啊变量改一改这个do塔负变好,这样呢,我们搜索啊搜索,然后连带这个分页对吧,数据的转换,包括我们的银,就是说银可录的要加载的额外的数据都写好了。
25:02
是不是?好。接下来啊,测试一下啊。哎,有数据,因为我们加了已经可录的,所以它会不给我们包含那个分类的一个数据,那我们进行一个搜索,搜索怎样搜索这个title。Title。T,来,我们搜索个title包含三的啊。是不是拿到这个电脑三,你看这个title是不是拿到电脑三对不对。啊,说明我搜索也好使了啊,比如说我们查分类。分类没法搜索,现在分类好像都是这个七的啊。那其他的大家可以自己去测试一下啊,都是啊可以用的啊。接下来。我们再写一个这个营可录的啊,写一个什么隐可录的用户,我们不仅有额外的分类数据,因为这个商品我们还还可以知道这个商品是谁创建的是吧。啊,所以用户的一个数据已可录的user啊,这里就都是改一改就行了,然后对外我们这里要在让当中使用这个额外的一个用户的一个数据。
26:08
呃,同时这个模型里面,那我们还要配一个和用户的一个关联啊,所属的一个用户啊,这里改成user。模型使用优色的这个模型啊,ID是关联的优色ID好,这样我们想要在传这个就是获取到同时获取到这个用户的信息就可以了啊。来,现在我们查这个title包含三的啊,并且你要包含这个分类的这个数据,你看是不是有分类的数据,那我同时要在使使用这个用户的数据怎么办呢?啊,这里逗号隔开啊,多个以逗号隔开,再来一个user看到了吗?传有问题啊。所以我们这里要改一改啊。啊,这里我们要使用使用这个。
27:01
优色的穿刺form嘛,你不能说你返回用户,你使用分类的传刺缝嘛,这里忘了改了,反正复制的有点快了,来接着再看。是不是可以?啊,不仅给我们包含了分类,还包含了用户的一个数据,对不对。所以我们要想同时包含。多个额外的一个数据的话,可以加上啊,这个逗号就可以了啊,比如我们不搜索太多的时候。每一条数据都会有给我们包含上这个分类和用户的一个数据。清楚吧。这个就是啊,关于transform里面,我们这个include的一个使用啊,一定要注意不要在这里面忘了加啊,要不然对外面就是说外面它使用不到。这样我们商品的列表也就写完了。
我来说两句