接口返回数据:response is not defined 怎么解决?
点击提交订单之后,跳转订单详情页出错:response is not defined
axios.post('{{ route('orders.store') }}', req)
.then(function () {
swal('订单提交成功', '', 'success')
.then(() => {
location.href = '/orders/' + response.data.id;
});
}, function (error) {
...
});
public function store(OrderRequest $orderRequest)
{
$user = $orderRequest->user();
// 开启一个数据库事务
$order = \DB::transaction(function () use ($user, $orderRequest) {
$address = UserAddress::find($orderRequest->input('address_id'));
// 更新此地址的最后使用时间
$address->update(['last_used_at' => Carbon::now()]);
// 创建一个订单
$order = new Order([
'address' => [ // 将地址信息放入订单中
'address' => $address->full_address,
'zip' => $address->zip,
'contact_name' => $address->contact_name,
'contact_phone' => $address->contact_phone,
],
'remark' => $orderRequest->input('remark'),
'total_amount' => 0,
]);
// 订单关联到当前用户
$order->user()->associate($user);
// 写入数据库
$order->save();
$total_amount = 0;
$cart_items = $orderRequest->input('cart_items');
// 遍历用户提交的 SKU
foreach ($cart_items as $cart_item) {
$sku = ProductSku::find($cart_item['sku_id']);
// 创建一个 OrderItem 并直接与当前订单关联
$order_item = $order->orderItems()->make([
'amount' => $cart_item['amount'],
'price' => $sku->price,
]);
$order_item->product()->associate($sku->product_id);
$order_item->productSku()->associate($sku);
$order_item->save();
$total_amount += $sku->price * $cart_item['amount'];
if ($sku->decreaseStock($cart_item['amount']) <= 0) {
throw new InvalidRequestException('该商品库存不足');
}
}
// 更新订单总额
$order->update(['total_amount' => $total_amount]);
// 将下单的商品从购物车中移除
$sku_ids = collect($cart_items)->pluck('sku_id');
$user->cartItems()->whereIn('product_sku_id', $sku_ids)->delete();
// 触发 job 任务
$this->dispatch(new CloseOrder($order, config('app.order_ttl')));
return $order;
});
return $order;
}
推荐文章: