Ejemplo n.º 1
0
 /**
  * /login
  *
  * @return string|\yii\web\Response
  */
 public function actionIndex()
 {
     if ($this->member) {
         return $this->goHome();
     }
     // Check for login
     $model = new LoginForm();
     $redirectAfter = $this->request->getQueryParam('r');
     if ($redirectAfter) {
         $this->session->set('redirectAfterLogin', $redirectAfter);
     }
     $errors = null;
     if ($this->request->method == 'POST') {
         // populate model attributes with user inputs
         $model->load($this->request->post());
         if ($model->validate() && $model->authenticate()) {
             // all inputs are valid
             $redirectAfter = $this->session->get('redirectAfterLogin');
             if ($redirectAfter) {
                 $this->session->remove('redirectAfterLogin');
                 $this->redirect($redirectAfter);
             } else {
                 return $this->goHome();
             }
         } else {
             // validation failed: $errors is an array containing error messages
             $errors = $model->errors;
         }
     }
     return $this->render('login', ['model' => $model, 'errors' => $errors]);
 }