00:00
接下来继续完成啊,我的购物中的一个订单的一个列表,还包括啊,已付款的呀,未付款的或者说已完成的啊,当然每种不同的订单的状态可以进行不同的操作,比如说已完成了,我们可以去评价。对吧,然后未付款的我们可以去付款。然后已付款的,哎,卖家已经发货的,我们可以去确认收货,所以我们今天把这个功能写一写啊,先写一个列表。找到啊路由文件。好,继续在订单这里去写啊。订单列表啊,使用get的方式啊,直接请求。这个地址control。我们用index方法。
01:23
查询所有的订单。当然要加上用户ID。这个我们。啊,需要分页,因为我的订单的话可能会有很多。那我们先写三个一页吧。
02:03
然后。返回分页。使用订单的传风。来接下来看一看啊。先去生成一个talking,好久没有登录了。啊,请求get请求啊。Get请求,Out。哎,是不是得到所有的订单列表。并且。然后还有我的这个一个付款的方式,第一个是支付宝付款的,第二个是微信付款的下面分页的一个信息。啊。啊,订单呢啊,我们会有一些搜索条件,比如按状态去搜索状态,哎主要有。
03:07
我们这个已付款的。是吧,未复函的可以看一看我们数据库,我们设计的这个状态。这表当然设计的比较简单,只有这几个,就说已下单的,已支付的,已发货的。啊,已收获的已过期的是不是啊。那接下来。嗯,我们就按照这个状态去搜索。等于request。Query。啊,当你传了这个space的参数的时候,我再给你进行搜索。所以这时候用when是比较方便的。States。接着是一个必包的一个函数。
04:04
查询构造器。Use this。好,把这个state状态这个查条件给你连上,哎,就是当你存在的时候,我就给你连上这个产权遗产不存在我就不给你做处理了吧。来看一看啊。哎,这是不存在的情况,就拿所有了,然后我如果加上这个space,等于一我查我未付款的啊,就刚下单的订单。是不是没有对不对,比如我查我这个二已付款的。好。就有这两个是不是。啊,明天我查了一个四。啊,已经完成的。哎,没有是吧,啊,这个搜索条件可以了,接着我们有时候还需要什么搜索呢,需要这个按照商品的。名字去搜索,就是我买的这么东西,我有时候想知道啊,我买的这个手机是在哪一个订单,想看一下订单详情啊,这时候我们可以提供啊这个title的一个搜索。
05:11
同样啊,直接复制它就可以了。啊,抬头也是啊,使用这个win。当他存在的时候。我才去搜索,但是我们订单里面是没有这个抬头的。知道吧。啊,所以。我们是有什么呢?有这个它的关联表,关联的商品是有抬头的。清楚吗?所以这里我们就不能用这个。啊,可以用这个问啊可以用这个问,没问题。啊,就是当你存在我在说什么,但是问的话,这个条件我们怎么写呢。应该写这个has啊,就是当你具备这些。模型的时候,我们来看一下这个方法啊,大家可能这个用的比较少,比较陌生,看一看手册这里找到关联查询。
06:09
模型关联就是你看你的一个模型相关联的模型存不存在的时候,是可以用这个has的啊。啊,你看查询已关联关联的模型,同样has字呢,我们还可以去。嗯,就是说他的一个境界版使用这个where has where has,哎,我们这个时候就可以写上一些。查询的条件。行了吗?所以我们这里用where has。Has只是去呃检测有没有这个关联的一个模型,但是我们用这个where has它呢。我们写上这个关联的这个商品啊,虽然是一个远程的一个一对多的关联,因为war has,它支持一个必包函数。在B包函数里面可以写我们的查询条件。清楚吧。
07:01
啊。关联它,然后翻个query,注意啊,这个query是什么呢?是我们顶层的这个产品告诉你,而这个query就是我们这个has,就说Y位的这个模型的关联的它的这个query。明白吧?所以哎,这个时候。我们应该查到什么query?啊,也就是他。关联的这个商品。然后。Where title,哎,这个商品关联的商品里面,商品里面就有抬头了,对吧?啊like。给一个双引号、百分号这些大括号写上do title。加个分号,当然这个抬头没有我们这里要。柚子啊柚子,这个抬头,但你柚子呢?他柚子了啊,它就可以柚稚的啊,接着再往里面传一层,哎,这样我们才可以where has啊。
08:01
可以再看一下手册,手册的一个说明where has呢啊,可以将这个where条件放到这个我们关联的这个模型之上啊,去进行一个查询。我们来尝试一下啊。现在我们我们不不搜索这个状态。我们现在有两个订单啊,但是呃,我们不知道这个订单的这个商品的一个情况,所以我们不知道怎么搜,我们先加一个银可路的。先把这个商品信息给关联上,我先看看我搜哪个啊。嗯。搜索这个吧,Eli看第一个是不带的啊好,那这个。我来搜索一个title。哎,它头包含这个E的。来看一下数据。有问题啊,这个咱们也查到了。这个有问题啊,那这个都查到了,看一下我们的代码。
09:05
啊,这里这里是多取了一个空格,我们再来试一下啊。还是茶title包含他的。而且这里是用的这个。Where has就是查的是模型的一个关联。好,看我们的查询结果。诶是不是,呃,这个订单第一个订单它是包含这个商品的,所以第一个这个订单查到了是没有问题的,主要看第二个订单有没有。来往下走是不是没了,就这一条数据对不对。因为我们这第一个订单它包含两个商品,你看包含这个商品,还包含下面这个商品,但是我们搜索的这个标题呢,是商品里面的这个标题包含它的,所以说把这个订单拿到是没有问题的。啊,说明我们这个搜索也是没问题的。啊,包括这个状态这样都写完了啊,这样我们又用到了where has,哎,可以去不管是has啊,Where has或者our has都是去针对的是它这个模型啊,模型的一个关联的一个。
10:09
查询啊,所以这个查询构造器是相对于这个模型的一个查询构造器,所以我们这里可以v title头,对吧,你订单里面是没有这个开头的。我们外面这层when这一层的query是这个order的这个查询构造器,这个大家不要搞混了。那这样订单列表我们就写完了啊。刚才我在下面看到这个预览订单,我们之前因为没有地址数据,所以这里把地址信息给空着了。是不是这样的?啊,所以现在我可以把地址给。给填充上了啊。啊,地址等于ad。Model wire查当前登录用户的他的这个所有的一个地址啊。
11:06
好。并且呢。Out by按这个is default去排序啊,倒序去排,这样我们就可以把啊这个默认地址排到最上面。什么?哎,接下来取一条啊,不是取一条,是取所有的啊。好,这样我们地址信息就有了。啊,那这个就不用模拟了,地址数据。啊,地址的返回了。来看一下我们预览订单这个接口。预览订单直接请求这个就可以啊。是。Get的方式啊。我们再新开一个。认证选上。Get方式请求这个地址。
12:05
哎,看到有地址信息了,对吧,那这样就。我们原来顺着这个凸度就完成了啊。还有一个突突的地方,就是也是和地址相关的。啊,这一行。就是我们在创建这个订单的时候,提交订单的时候,地址要存在对不对。Ex。RTS啊,它要在这个地址表里面存在啊,逗号IDID去查。啊,那这个图度我们也可以删掉了,哎,这是之前因为没有极值表,我们预留的两个图度。订单列表啊。这样就算写完了。
我来说两句