The example in this article describes the implementation method of yii user registration form verification. Share it with everyone for your reference, the details are as follows:
View layer: register.php
<?php //使用小物件生成form元素 $form=$this->beginWidget('CActiveForm'); ?> <!--用户名--> <?php echo $form->labelEx($model,'username');?> <?php echo $form->textField($model,'username');?> <?php echo $form->error($model,'username');?> <br> <!--密码--> <?php echo $form->labelEx($model,'password');?> <?php echo $form->passwordField($model,'password');?> <?php echo $form->error($model,'password');?> <br> <!--确认密码--> <?php echo $form->labelEx($model,'password2');?> <?php echo $form->passwordField($model,'password2');?> <?php echo $form->error($model,'password2');?> <br> <!--邮箱--> <?php echo $form->labelEx($model,'email');?> <?php echo $form->textField($model,'email');?> <?php echo $form->error($model,'email');?> <br> <!--性别--> <?php echo $form->labelEx($model,'sex');?> <?php echo $form->radioButtonList($model,'sex',array(1=>'男',2=>'女'),array("separator"=>" "));?> <br> <!--年级--> <?php echo $form->labelEx($model,'grade');?> <?php echo $form->dropDownList($model,'grade',array(0=>"--请选择--",1=>"2010级",2=>"2011级",3=>"2012级"));?> <?php echo $form->error($model,'grade');?> <br> <?php echo $form->labelEx($model,'hobby');?> <?php echo $form->checkBoxList($model,'hobby',array(1=>"篮球",2=>"足球",3=>"排球"),array("separator"=>" "));?> <?php echo $form->error($model,'hobby');?> <!--提交--> <?php echo CHtml::submitButton('提交');?> <?php $this->endWidget(); ?>
The code of the model layer is as follows: User.php
<?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个以上"); } } } ?>
The code of the control layer is as follows:
//信息添加 添加显示页面和添加处理使用同一个方法 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)); }
Among them, the automatic verification of the form is implemented in the model layer. The names of the form elements are consistent with the field names in the database, and error messages can be set to prompt.
I hope this article will be helpful to everyone’s PHP program design based on the yii framework.