m\modules\v1\controllers\OrderController::actionCancel PHP Method

actionCancel() public method

public actionCancel ( $id )
    public function actionCancel($id)
    {
        $model = Order::find()->where(['and', ['user_id' => Yii::$app->user->id], ['id' => $id], ['<>', 'status', Order::STATUS_DELETED]])->one();
        if (!$model) {
            throw new BadRequestHttpException('您没有该订单!');
        }
        if ($model->status !== Order::STATUS_UNPAID && $model->status !== Order::STATUS_CANCELLED) {
            throw new BadRequestHttpException('您不能取消该订单!');
        }
        if ($model->status === Order::STATUS_CANCELLED || $model->cancel()) {
            return ['status' => 'success', 'data' => ['status' => $model->status, 'statusMsg' => $model->statusMsg]];
        } else {
            return ['status' => 'fail', 'data' => []];
        }
    }