1.png
由于接口认证是在cart
路由中的,所以用户在登录商城
,分类
,服务
页面的时候,是不需要认证的,当用户添加商品进入购物车,跳转到购物车页面的时候,中间件会提示用户登录...
1.png
所以让用户付款的时候,才是把address
,cart
,customer
表里面的信息往order
,order_address
,order_product
.插值的.
在orders
表里设置status
字段,用不同数字标示订单状态.
1=下单,未付款
2=付款
3=配货
4=出库
5=交易成功
后端路由:
Route::get('order_list/{id}', 'OrderController@order_list');
后端控制器:
public function order_list($status)
{
$where = function ($query) use ($status) {
$customer_id = auth('api')->user()->id;
//先匹配订单用户
$query->where('customer_id', $customer_id);
//switch循环 https://www.whphp.com/show/227
switch ($status) {
case '0';
break;
case '1';
$request->where('status', 1);
break;
case '2';
$request->whereIn('status', [2, 3, 4]);
break;
}
};
$orders = Order::where($where)->with('order_products.product','customer', 'order_address')->orderBy('created_at', 'desc')->get();
return compact('orders');
}
前端:
<div class="oi12" v-if="order.status==1"><p>未支付</p></div>
<div class="oi12" v-if="order.status==2"><p>已支付</p></div>
<div class="oi12" v-if="order.status==3"><p>配货中</p></div>
<div class="oi12" v-if="order.status==4"><p>物流运输中</p></div>
<div class="oi12" v-if="order.status==5"><p>交易成功</p></div>
<div class="oi4" v-if="order.status==1">
<a href="javascript:;" class="org">立即付款</a>
<a href="javascript:;" >取消订单</a>
</div>
<script>
methods: {
init: function () {
const status= this.$route.params.status
console.log(status)
this.axios.get(`/api/order/order_list/${status}`).then((res) => {
this.orders = res.data.orders
console.log(this.orders)
})
}
}
</script>