8.4. 用户界面 - 确认收货
确认收货
上一节我们完成了后台的发货操作,这一节我们要来实现用户端确认收货的功能。
1. 控制器
首先在 OrdersController
中新增 received()
方法作为确认收货的接口:
app/Http/Controllers/OrdersController.php
.
.
.
public function received(Order $order, Request $request)
{
// 校验权限
$this->authorize('own', $order);
// 判断订单的发货状态是否为已发货
if ($order->ship_status !== Order::SHIP_STATUS_DELIVERED) {
throw new InvalidRequestException('发货状态不正确');
}
// 更新发货状态为已收到
$order->update(['ship_status' => Order::SHIP_STATUS_RECEIVED]);
// 返回原页面
return redirect()->back();
}
2. 路由
接下来添加对应的路由:
routes/web.php
.
.
.
Route::group(['middleware' => 'auth'], function() {
....