public function actionRecoveryHandler() { $arr['katalaluan'] = $_POST['katalaluan']; $arr['pengesahan_katalaluan'] = $_POST['pengesahan_katalaluan']; $model = new \yii\base\DynamicModel($arr); $model->addRule(['katalaluan', 'pengesahan_katalaluan'], 'required', ['message' => 'Medan {attribute} ini wajib diisi'])->addRule('katalaluan', 'compare', ['compareAttribute' => 'pengesahan_katalaluan', 'message' => 'Katalaluan dan Pengesahan Katalaluan Mestilah Sama'])->validate(); $str = $_POST['str']; $app = \app\models\Applicant::findOne(['forgot_pwd' => $str]); if ($model->hasErrors()) { return $this->render('pwd_recovery', ['errors' => $model->getErrors(), 'app' => $app]); } else { $app->password = $_POST['katalaluan']; $app->confirm_password = $app->password; // need to re-arrange on rules $app->com_state2 = $app->com_state; if ($app->validate()) { $app->forgot_pwd = null; $app->save(); \Yii::$app->session->setFlash('msg', 'Katalaluan telah berjaya ditukar'); return $this->goHome(); } else { //var_dump($app->getErrors()); return $this->render('pwd_recovery', ['errors' => $app->getErrors(), 'app' => $app]); } } }