Home  >  Article  >  Backend Development  >  yii用户注册表单验证实例,_PHP教程

yii用户注册表单验证实例,_PHP教程

WBOY
WBOYOriginal
2016-07-12 09:02:56715browse

yii用户注册表单验证实例,

本文实例讲述了yii用户注册表单验证实现方法。分享给大家供大家参考,具体如下:

视图层:register.php

<&#63;php
//使用小物件生成form元素
$form=$this->beginWidget('CActiveForm');
&#63;>
<!--用户名-->
<&#63;php echo $form->labelEx($model,'username');&#63;>
<&#63;php echo $form->textField($model,'username');&#63;>
<&#63;php echo $form->error($model,'username');&#63;>
<br>
<!--密码-->
<&#63;php echo $form->labelEx($model,'password');&#63;>
<&#63;php echo $form->passwordField($model,'password');&#63;>
<&#63;php echo $form->error($model,'password');&#63;>
<br>
<!--确认密码-->
<&#63;php echo $form->labelEx($model,'password2');&#63;>
<&#63;php echo $form->passwordField($model,'password2');&#63;>
<&#63;php echo $form->error($model,'password2');&#63;>
<br>
<!--邮箱-->
<&#63;php echo $form->labelEx($model,'email');&#63;>
<&#63;php echo $form->textField($model,'email');&#63;>
<&#63;php echo $form->error($model,'email');&#63;>
<br>
<!--性别-->
<&#63;php echo $form->labelEx($model,'sex');&#63;>
<&#63;php echo $form->radioButtonList($model,'sex',array(1=>'男',2=>'女'),array("separator"=>" "));&#63;>
<br>
<!--年级-->
<&#63;php echo $form->labelEx($model,'grade');&#63;>
<&#63;php echo $form->dropDownList($model,'grade',array(0=>"--请选择--",1=>"2010级",2=>"2011级",3=>"2012级"));&#63;>
<&#63;php echo $form->error($model,'grade');&#63;>
<br>
<&#63;php echo $form->labelEx($model,'hobby');&#63;>
<&#63;php echo $form->checkBoxList($model,'hobby',array(1=>"篮球",2=>"足球",3=>"排球"),array("separator"=>" "));&#63;>
<&#63;php echo $form->error($model,'hobby');&#63;>
<!--提交-->
<&#63;php echo CHtml::submitButton('提交');&#63;>
<&#63;php
$this->endWidget();
&#63;>

model层的代码如下:User.php

<&#63;php
/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
class User extends CActiveRecord{
  //创建一个模型的对象 静态
  public $password2;//非数据库的字段,但是在view中需要用到
  public static function model($className = __CLASS__) {
    return parent::model($className);
  }
  //返回当前数据表的名字
  public function tableName() {
    //parent::tableName();
    return '{{user}}';//这样写可以省略前缀
  }
  //设置标签的显示名字
  public function attributeLabels() {
    return array(
      "username"=>"姓名",
      "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个以上");
    }
  }
}
&#63;>

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));
}

其中,表单的自动验证,在model层实现,表单元素的名称与数据库中的字段名字一致,可设置错误信息进行提示。

希望本文所述对大家基于yii框架的PHP程序设计有所帮助。

您可能感兴趣的文章:

  • PHP Yii框架之表单验证规则大全
  • Yii框架form表单用法实例
  • Yii不依赖Model的表单生成器用法实例
  • yii框架表单模型使用及以数组形式提交表单数据示例
  • yii2.0实现验证用户名与邮箱功能
  • PHP YII框架开发小技巧之模型(models)中rules自定义验证规则
  • Yii使用ajax验证显示错误messagebox的解决方法
  • yii实现创建验证码实例解析
  • 在yii中新增一个用户验证的方法详解

www.bkjia.comtruehttp://www.bkjia.com/PHPjc/1084514.htmlTechArticleyii用户注册表单验证实例, 本文实例讲述了yii用户注册表单验证实现方法。分享给大家供大家参考,具体如下: 视图层:register.php php//使...
Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn