Inheritance: extends yii\base\Model
Ejemplo n.º 1
0
 public function actionSignup($step = '1')
 {
     if ($step === '1') {
         $model = new SignupForm();
         if ($model->load(Yii::$app->request->post(), '') && $model->validate()) {
             $model->writeSession();
             if ($sent = $this->_sendMsg($model->mobile)) {
                 Yii::info("用户注册发送短信验证码成功!手机号:{$model->mobile}");
             } else {
                 Yii::warning("用户注册发送短信验证码失败!手机号:{$model->mobile},说明:" . Yii::$app->smser->message);
             }
             return ['status' => 'success', 'data' => ['isSent' => $sent]];
         } else {
             return ['status' => 'fail', 'data' => ['errors' => $model->getFirstErrors()]];
         }
     } elseif ($step === '2') {
         $session = Yii::$app->session;
         $session->open();
         if (empty($session['mobileSignup']) || empty($session['mobileSignupTimeout']) || $session['mobileSignupTimeout'] < time()) {
             return ['status' => 'fail', 'data' => ['errors' => ['对不起,请您重新注册。']]];
         }
         $model = new SignupMobileVerifyForm();
         if ($model->load(Yii::$app->request->post(), '') && $model->validate()) {
             if ($user = $model->signup()) {
                 $model->clearSession();
                 return ['status' => 'success', 'data' => ['accessToken' => $user->access_token]];
             }
         }
         return ['status' => 'fail', 'data' => ['errors' => $model->getErrors('verifyCode') ?: ['注册失败,请稍后再试。']]];
     } else {
         throw new BadRequestHttpException('参数错误!');
     }
 }
Ejemplo n.º 2
0
 public function actionSignup($step = '1')
 {
     if ($step !== '2') {
         $model = new SignupForm();
         $model->load(Yii::$app->request->post());
         if (Yii::$app->request->isAjax) {
             Yii::$app->response->format = Response::FORMAT_JSON;
             return ActiveForm::validate($model);
         }
         if (Yii::$app->request->isPost && $model->validate()) {
             $model->writeSession();
             if ($this->_sendMsg($model->mobile)) {
                 Yii::info("用户注册发送短信验证码成功!手机号:{$model->mobile}");
                 Yii::$app->session->setFlash('sentSuccess');
             } else {
                 Yii::warning("用户注册发送短信验证码失败!手机号:{$model->mobile},说明:" . Yii::$app->smser->message);
                 Yii::$app->session->setFlash('failedToSend', '验证码发送失败,请您再试一次!');
             }
             return $this->redirect(['signup', 'step' => '2']);
         }
         $params = ['model' => $model, 'step' => $step];
     } else {
         $session = Yii::$app->session;
         $session->open();
         if (empty($session['mobileSignup']) || empty($session['mobileSignupTimeout']) || $session['mobileSignupTimeout'] < time()) {
             $session->setFlash('resignup', '对不起,请您重新注册。');
             return $this->redirect(['signup']);
         }
         $signupMobileVerifyForm = new SignupMobileVerifyForm();
         $signupMobileVerifyForm->load(Yii::$app->request->post());
         if (Yii::$app->request->isAjax) {
             Yii::$app->response->format = Response::FORMAT_JSON;
             return ActiveForm::validate($signupMobileVerifyForm);
         }
         if (Yii::$app->request->isPost && $signupMobileVerifyForm->validate()) {
             if ($user = $signupMobileVerifyForm->signup()) {
                 $signupMobileVerifyForm->clearSession();
                 if (Yii::$app->user->login($user)) {
                     return $this->goHome();
                 }
             }
         }
         $params = ['signupMobileVerifyForm' => $signupMobileVerifyForm, 'step' => $step];
     }
     return $this->render('signup', $params);
 }