public function testValidator()
 {
     $model = new yii\base\DynamicModel(['case', 'field1', 'field2']);
     $model->addRule('case', PetraBarus\Yii2\SwitchCaseValidator\Validator::class, ['cases' => [1 => [['field1', 'required']], 2 => [['field1', 'compare', 'compareValue' => 'Test']], 3 => [['field1', 'compare', 'compareValue' => 'Value 1'], ['field2', 'email']]], 'default' => [['field1', 'compare', 'compareValue' => 'Value 2'], ['field2', 'compare', 'compareValue' => 'Value 4']]]);
     $model->case = 1;
     $model->validate();
     $this->assertTrue($model->hasErrors());
     $model->field1 = 'Hello World!';
     $model->validate();
     $this->assertFalse($model->hasErrors());
     $model->case = 2;
     $model->validate();
     $this->assertTrue($model->hasErrors());
     $model->field1 = 'Test';
     $model->validate();
     $this->assertFalse($model->hasErrors());
     $model->case = 3;
     $model->validate();
     $this->assertTrue($model->hasErrors());
     $model->field1 = 'Value 1';
     $model->field2 = 'Value 3';
     $model->validate();
     $this->assertTrue($model->hasErrors());
     $model->field2 = '*****@*****.**';
     $model->validate();
     $this->assertFalse($model->hasErrors());
     $model->case = 4;
     $model->validate();
     $this->assertTrue($model->hasErrors());
     $model->field1 = 'Value 2';
     $model->field2 = 'Value 4';
     $model->validate();
     $this->assertFalse($model->hasErrors());
 }
示例#2
0
 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]);
         }
     }
 }