8.3. 管理后台 - 订单发货
订单发货
上一节的订单详情页我们只是完成了展示功能,接下来我们要在详情页上添加发货的功能。
1. 控制器
在 OrdersController
里新增一个 ship()
方法作为发货的接口:
app/Admin/Controllers/OrdersController.php
use Illuminate\Http\Request;
use App\Exceptions\InvalidRequestException;
.
.
.
public function ship(Order $order, Request $request)
{
// 判断当前订单是否已支付
if (!$order->paid_at) {
throw new InvalidRequestException('该订单未付款');
}
// 判断当前订单发货状态是否为未发货
if ($order->ship_status !== Order::SHIP_STATUS_PENDING) {
throw new InvalidRequestException('该订单已发货');
}
// Laravel 5.5 之后 validate 方法可以返回校验过的值
$data = $this->validate($request, [
'express_company' => ['required'],
'express_no' => ['required'],
], [],...