frontend\controllers\OrderController::actionCancel PHP 메소드

actionCancel() 공개 메소드

public actionCancel ( $order )
    public function actionCancel($order)
    {
        $model = Order::find()->where(['and', ['user_id' => Yii::$app->user->id], ['order_sn' => $order], ['<>', 'status', Order::STATUS_DELETED]])->one();
        if (!$model) {
            throw new NotFoundHttpException('您没有该订单!');
        }
        if ($model->status !== Order::STATUS_UNPAID) {
            throw new BadRequestHttpException('您不能取消该订单!');
        }
        if ($model->cancel()) {
            Yii::$app->session->setFlash('success', '订单成功取消!');
        } else {
            Yii::$app->session->setFlash('danger', '订单取消失败!');
        }
        if (Yii::$app->request->referrer) {
            return $this->redirect(Yii::$app->request->referrer);
        } else {
            return $this->redirect(['index']);
        }
    }