yii用户注册表单验证实例
发布:smiling 来源: PHP粉丝网 添加日期:2021-07-02 10:53:13 浏览: 评论:0
这篇文章主要介绍了yii用户注册表单验证,以实例形式详细分析了基于yii框架的用户注册表单验证功能模型,视图及控制器层具体实现技巧,需要的朋友可以参考下。
本文实例讲述了yii用户注册表单验证实现方法,分享给大家供大家参考,具体如下:
视图层: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();
- ?>
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层的代码如下:
- //信息添加 添加显示页面和添加处理使用同一个方法
- 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层实现,表单元素的名称与数据库中的字段名字一致,可设置错误信息进行提示。
Tags: yii用户注册表单验证
- 上一篇:yii2.0实现验证用户名与邮箱功能
- 下一篇:yii分页组件用法实例分析
推荐文章
热门文章
最新评论文章
- 写给考虑创业的年轻程序员(10)
- PHP新手上路(一)(7)
- 惹恼程序员的十件事(5)
- PHP邮件发送例子,已测试成功(5)
- 致初学者:PHP比ASP优秀的七个理由(4)
- PHP会被淘汰吗?(4)
- PHP新手上路(四)(4)
- 如何去学习PHP?(2)
- 简单入门级php分页代码(2)
- php中邮箱email 电话等格式的验证(2)