PHP Yii框架之表单验证规则大全
发布:smiling 来源: PHP粉丝网 添加日期:2021-06-26 20:27:52 浏览: 评论:0
Yii是一个基于组件的高性能PHP框架,用于开发大型Web应用。Yii采用严格的OOP编写,并有着完善的库引用以及全面的教程,本文给大家介绍php yii框架之表单验证规则大全,感兴趣的朋友一起学习吧
废话不多说了,直接给大家贴代码了。
- <?php
- class ContactForm extends CFormModel
- {
- public $_id;
- public $contact;//联系人
- public $tel;//电话
- public $fax;//传真
- public $zipcode;//邮编
- public $addr;//地址
- public $mobile;//手机
- public $email;//邮箱
- public $website;//网址
- public $qq;//QQ
- public $msn;//MSN
- public function rules()
- {
- return array(
- array('contact','required','on'=>'edit','message'=>'联系人必须填写.'),
- array('contact','length','on'=>'edit','min'=>2,'max'=>10,'tooShort'=>'联系人长度请控制在2-10个字符.','tooLong'=>'联系人长度请控制在2-10个字符.'),
- array('tel', 'match','pattern' => '/^(\d{3}-|\d{4}-)(\d{8}|\d{7})?$/','message' => '请输入正确的电话号码.'),
- array('fax', 'match','pattern' => '/^(\d{3}-|\d{4}-)(\d{8}|\d{7})?$/','message' => '请输入正确的传真号码.'),
- array('mobile', 'match','pattern' => '/^13[0-9]{1}[0-9]{8}$|15[0189]{1}[0-9]{8}$|189[0-9]{8}$/','message' => '请输入正确的手机号码.'),
- array('email','email','on'=>'edit','message'=>'邮箱输入有误.'),
- array('zipcode','required','on'=>'edit','message'=>'邮编必须填写.'),
- array('zipcode','numerical','on'=>'edit','message'=>'邮编是6位数字.'),
- array('zipcode','length','on'=>'edit','min'=>6,'max'=>6,'tooShort'=>'邮编长度为6位数.','tooLong'=>'邮编长度为6位数.'),
- array('website','url','on'=>'edit','message'=>'网址输入有误.'),
- array('qq', 'match','pattern' => '/^[1-9]{1}[0-9]{4,11}$/','message' => '请输入正确的QQ号码.'),
- array('msn','email','on'=>'edit','message'=>'MSN输入有误.'),
- );
- }
- }
完整示例:
- public $password2;//非数据库的字段,但是在view中需要用到
- public $verify; //手机验证码
- public $fjg; //忘记号码
- /**
- * 映射数据库表名
- * @return string the associated database table name<br><br> * www.phpfensi.com
- */
- public function tableName()
- {
- return 'adm_user';
- }
- /**
- * 验证规则
- * @return array validation rules for model attributes.
- */
- public function rules()
- {
- // NOTE: you should only define rules for those attributes that
- // will receive user inputs.
- return array(
- //array('mobile_phone,name,status', 'required'),
- array('mobile_phone', 'unique'),//'message' => '该手机号已经存在!'
- array('mobile_phone', 'match','pattern' => '/^(13|15|18)[0-9]{9}$/','message' => '请输入正确的经办人手机号码.'),
- //array('certificate_id', 'match','pattern' => '/(.jpg|.gif|.png|\d)$/','message' => '请重新选择证书图像并且后缀只能是jpg、gif、png格式.'),
- array('phone', 'match','pattern' => '/^(\d{3}-|\d{4}-)?(\d{8}|\d{7})?$/','message' => '请输入正确的座机号码.'),
- array('fax', 'match','pattern' => '/^(\d{3}-|\d{4}-)(\d{8}|\d{7})?$/','message' => '请输入正确的传真号码.'),
- //array('email_address', 'match','pattern' => '/^[\w-]+(\.[\w-]+)*@[\w-]+(\.[\w-]+)+$/','message' => '请输入正确的邮箱.'),
- array('email_address','email','message'=>'请输入正确的邮箱.'),
- //验证密码和确认密码
- array("password2","compare","compareAttribute"=>"password","message"=>"两次密码不一致",'on'=>'register'),
- array("password2","compare","compareAttribute"=>"password","message"=>"两次密码不一致",'on'=>'regonter'),
- array('qq', 'match','pattern' => '/^[1-9]{1}[0-9]{4,11}$/','message' => '请输入正确的QQ号码.'),
- array('type,certificate_id,company_type, nationality,yyzz_id, status,level,create_by_id, create_time,update_time', 'numerical', 'integerOnly'=>true),
- array('verify', 'numerical', 'message' => '验证码不正确','integerOnly'=>true),
- array('name,user_type,tuijianren', 'length', 'max'=>20),
- array('password', 'length', 'max'=>100),
- array('email_address,business', 'length', 'max'=>50),
- array('communication_address,money, yhzh,yhmc,industry, company, register_address,yhdh,shangbiao,zhuanli,gongshang', 'length', 'max'=>255),
- array('role_id','default', 'setOnEmpty'=>true, 'value'=>10),
- array('shangbiao','default', 'setOnEmpty'=>true, 'value'=>'0,0'),
- array('zhuanli','default', 'setOnEmpty'=>true, 'value'=>'0,0'),
- array('gongshang','default', 'setOnEmpty'=>true, 'value'=>'0,0'),
- array('password','default', 'setOnEmpty'=>true, 'value'=>'123456'),
- /*验证码*/
- array('verify','checkVerify', 'on'=>'register'),
- array('email_address','checkemail', 'on'=>'regonter'),
- // array('certificate_id', 'file','allowEmpty'=>true,
- // 'types'=>'jpg, gif, png, doc, txt',
- // 'maxSize'=>1024 * 1024 * 10, // 10MB
- // 'tooLarge'=>'文件大小不能超过10M!',
- // 'message'=>'请先上传证书图像.'
- // ),
- // The following rule is used by search().
- // @todo Please remove those attributes that should not be searched.
- array('id,role_id,name, password,user_type, email_address,tuijianren,shangbiao,company_type,zhuanli,gongshang,money,yhzh,yhmc,yyzz_id,yhdh,type,level, phone, qq, mobile_phone, fax, communication_address, nationality, industry, company, business, register_address, certificate, status, create_by_id, create_time, update_time', 'safe', 'on'=>'search'),
- );
- }
- /*
- * 手机验证码校验
- */
- public function checkVerify($attribute,$params)
- {
- $model=new Mess();
- $d_title = $model->find(array('condition'=>'suij=:suij and tel=:tel and type>:type and time>:time','params'=>array(':suij'=>$this->verify,':tel'=>$this->mobile_phone,':type'=>0,':time'=>(time()-3600)),'select'=>array('id')));
- //$d_title = $model->findByAttributes(array('suij'=>$this->verify,'tel'=>$this->mobile_phone),array('select'=>array('id')));
- if($d_title['id']<1)
- {
- $this->addError('verify', "验证码不正确。");
- }
- else
- {
- if($this->password == $this->password2)
- {
- $model->updateAll(array('type'=>0),array('condition'=>'suij=:sj','params'=>array(':sj'=>$this->verify)));
- }
- }
- }
以上代码就是关于PHP Yii框架之表单验证规则大全的全部内容,希望大家喜欢。
Tags: Yii框架 Yii表单验证规则
相关文章
- ·详解PHP的Yii框架中扩展的安装与使用(2019-10-20)
- ·PHP的Yii框架中过滤器相关的使用总结(2019-10-31)
- ·简介PHP的Yii框架中缓存的一些高级用法(2019-10-31)
- ·深入解析PHP的Yii框架中的缓存功能(2019-11-05)
- ·PHP的Yii框架中创建视图和渲染视图的方法详解(2019-11-05)
- ·PHP的Yii框架中Model模型的学习教程(2019-11-05)
- ·详解PHP的Yii框架中的Controller控制器(2019-11-05)
- ·yii框架表单模型使用及以数组形式提交表单数据示例(2020-11-25)
- ·yii框架通过控制台命令创建定时任务示例(2020-11-25)
- ·yii框架配置默认controller和action示例(2020-11-25)
- ·在Yii框架中使用PHP模板引擎Twig的例子(2021-02-19)
- ·Yii框架登录流程分析(2021-05-02)
- ·Yii框架中memcache用法实例(2021-05-02)
- ·Yii框架form表单用法实例(2021-05-02)
- ·Yii框架在页面输出执行sql语句以方便调试的实现方法(2021-05-04)
- ·Yii框架调试心得--在页面输出执行sql语句(2021-05-04)
推荐文章
热门文章
最新评论文章
- 写给考虑创业的年轻程序员(10)
- PHP新手上路(一)(7)
- 惹恼程序员的十件事(5)
- PHP邮件发送例子,已测试成功(5)
- 致初学者:PHP比ASP优秀的七个理由(4)
- PHP会被淘汰吗?(4)
- PHP新手上路(四)(4)
- 如何去学习PHP?(2)
- 简单入门级php分页代码(2)
- php中邮箱email 电话等格式的验证(2)