public function actionEmail($step = '1') { $params = ['step' => $step]; if ($step === '1') { $emailBindRequestForm = new EmailBindRequestForm(); $emailBindRequestForm->load(Yii::$app->request->post()); if (Yii::$app->request->isAjax) { Yii::$app->response->format = Response::FORMAT_JSON; return ActiveForm::validate($emailBindRequestForm); } if (Yii::$app->request->isPost && $emailBindRequestForm->sendEmail()) { Yii::$app->session->setFlash('success', '验证码已发送,请至邮箱查看。'); return $this->redirect(['email', 'step' => '2']); } $params['emailBindRequestForm'] = $emailBindRequestForm; } elseif ($step === '2') { $bindEmailForm = new BindEmailForm(); $bindEmailForm->load(Yii::$app->request->post()); if (Yii::$app->request->isAjax) { Yii::$app->response->format = Response::FORMAT_JSON; return ActiveForm::validate($bindEmailForm); } if (Yii::$app->request->isPost && $bindEmailForm->bind()) { Yii::$app->session->setFlash('success', '邮箱绑定成功!'); return $this->redirect(['email']); } $params['bindEmailForm'] = $bindEmailForm; } else { return $this->redirect(['email']); } return $this->render('email', $params); }
/** * 更新邮箱 * * @return array */ public function actionEmail($step = '1') { if ($step === '1') { $model = new EmailBindRequestForm(); if ($model->load(Yii::$app->request->post(), '') && $model->sendEmail()) { return ['status' => 'success', 'data' => []]; } else { return ['status' => 'fail', 'data' => ['errors' => $model->getErrors('email') ?: [Yii::$app->smser->message]]]; } } elseif ($step === '2') { $model = new BindEmailForm(); if ($model->load(Yii::$app->request->post(), '') && $model->bind()) { return ['status' => 'success', 'data' => ['email' => Yii::$app->user->identity->email]]; } else { return ['status' => 'fail', 'data' => ['errors' => $model->getErrors('verifyCode')]]; } } else { throw new BadRequestHttpException('参数错误!'); } }