yii 사용자 등록표 검증 실례

4944 단어
본고는 ii 사용자 등록표 검증 실현 방법을 실례로 서술하였다.다음과 같이 여러분에게 참고할 수 있도록 공유합니다.
보기층:register.php

beginWidget('CActiveForm');
?>

labelEx($model,'username');?>
textField($model,'username');?>
error($model,'username');?>

labelEx($model,'password');?> passwordField($model,'password');?> error($model,'password');?>
labelEx($model,'password2');?> passwordField($model,'password2');?> error($model,'password2');?>
labelEx($model,'email');?> textField($model,'email');?> error($model,'email');?>
labelEx($model,'sex');?> radioButtonList($model,'sex',array(1=>' ',2=>' '),array("separator"=>" "));?>
labelEx($model,'grade');?> dropDownList($model,'grade',array(0=>"-- --",1=>"2010 ",2=>"2011 ",3=>"2012 "));?> error($model,'grade');?>
labelEx($model,'hobby');?> checkBoxList($model,'hobby',array(1=>" ",2=>" ",3=>" "),array("separator"=>" "));?> error($model,'hobby');?> endWidget(); ?>

모델 레이어의 코드는 다음과 같습니다. User.php

" ",
      "password"=>" ",
      "password2"=>" ",
      "email"=>" ",
      "sex"=>" ",
      "grade"=>" ",
      "hobby"=>" ",
    );
  }
  // 
  public function rules() {
    return array(
      array("username","required","message"=>" "),
      array("password","required","message"=>" "),
      // 
      array("password2","compare","compareAttribute"=>"password","message"=>" "),
      // 
      array("email","email","allowEmpty"=>false,"message"=>" "),
      // 
      array("grade","in","range"=>array(1,2,3),"message"=>" "),
      // , 
      array("hobby","checkHobby"),
    );
  }
  // 
  function checkHobby(){
    $this->hobby;
    $len= strlen($this->hobby);
    if($len<3){
      $this->addError("hobby"," 2 ");
    }
  }
}
?>


control 레이어의 코드는 다음과 같습니다.

//   
  public function actionAdd(){
    $user=new User();
    if(isset($_POST['User'])){
//      foreach ($_POST['User'] as $k =>$v){
//        $user->$k=$v;
//      }
      if(is_array($_POST['User']['hobby']))
        $_POST['User']['hobby']= implode(",", $_POST['User']['hobby']);
      //print_r($_POST['User']);
      $user->attributes=$_POST['User'];
      if($user->save()){
        echo 'success';
      }else{
        echo 'error';
      }
    }
    $this->renderPartial("new",array("model"=>$user));
}


그 중에서 폼의 자동 검증은 모델층에서 이루어지고 폼 요소의 이름은 데이터베이스에 있는 필드의 이름과 일치하며 오류 정보를 설정하여 제시할 수 있다.
본고에서 기술한 바와 같이yii 프레임워크를 바탕으로 하는 PHP 프로그램 설계에 도움이 되기를 바랍니다.

좋은 웹페이지 즐겨찾기