Created
July 21, 2014 01:42
-
-
Save kaizhuQin/bc983f28e04f4704106e to your computer and use it in GitHub Desktop.
php:yii用户注册表单验证
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
//视图层:register.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(); | |
?> | |
?> | |
/** | |
* model层的代码如下: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个以上"); | |
} | |
} | |
} | |
?> | |
/** | |
* control层的代码如下: | |
*/ | |
<?php | |
//信息添加 添加显示页面和添加处理使用同一个方法 | |
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)); | |
} | |
?> |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment