模型数据验证
系统内置了数据对象的自动验证功能,而大多数情况下面,数据对象是由表单提交的$_POST数据创建。
需要使用系统的自动验证功能,只需要在Model类里面定义$_validate属性,是由多个验证因子组成的数组,支持的验证因子格式:
代码: 复制内容到剪贴板
1. array(验证字段,验证规则,错误提示,验证条件,附加规则,验证时间)
验证字段就是定义需要验证的表单字段,这个字段不一定是数据库字段,也可以是表单的一些辅助字段,例如确认密码和验证码等等。
验证规则 要进行验证的规则,需要结合附加规则
提示信息 用于验证失败后的提示信息定义
验证因子中上面三个参数必须定义,下面为可选参数。
验证条件
EXISTS_TO_VAILIDATE 或者0 存在字段就验证 (默认)
MUST_TO_VALIDATE 或者1 必须验证
VALUE_TO_VAILIDATE或者2 值不为空的时候验证
附加规则 配合验证规则使用,包括:
function 使用函数验证,前面定义的验证规则是一个函数名
callback 使用方法验证,前面定义的验证规则是一个当前Model类的方法
confirm 验证表单中的两个字段是否相同,前面定义的验证规则是一个字段名
equal 验证是否等于某个值,该值由前面的验证规则定义
in 验证是否在某个范围内,前面定义的验证规则必须是一个数组
unique 验证是否唯一,系统会根据字段目前的值查询数据库来判断是否存在相同的值
regex 使用正则进行验证,表示前面定义的验证规则是一个正则表达式(默认)
如果采用正则进行验证,会调用系统内置的验证类进行验证操作,该验证类位于ORG.Text.Validation,通过正则的方式对数据进行验证,并定义了一些常用的验证规则。包括:
require 字段必须
email 邮箱
url URL地址
currency 货币
number 数字
这些验证规则可以直接使用。
验证时间:
all 全部情况下验证(默认)
add 新增数据时候验证
edit 编辑数据时候验证
示例:
代码: 复制内容到剪贴板
1. var $_validate = array(
2. array('verify','require','验证码必须!'), //所有情况下用正则进行验证
3. array(name,'','帐号名称已经存在!',0,’unique’,’add’), // 在新增的时候验证name字段是否唯一
4. array('value',array(1,2,3),'值的范围不正确!',2,’in’), // 当值不为空的时候判断是否在一个范围内
5. array('repassword','password','确认密码不正确',0,’confirm’), // 验证确认密码是否和密码一致
6. array('password','checkPwd','密码格式不正确',0,’function’), // 自定义函数验证密码格式
7. );
当使用系统的create方法创建数据对象的时候会自动进行数据验证操作,代码示例:
代码: 复制内容到剪贴板
1. $User = D(“User”);
2. $vo = $User->create();
3. if (!$vo){
4. // 如果创建失败 表示验证没有通过 输出错误提示信息
5. $this->error($User->getError());
6. }
数据处理
在Model类定义 $_auto 属性,可以完成数据自动处理功能,用来处理默认值和其他系统写入字段。
$_auto属性是由多个填充因子组成的数组,填充因子定义格式:
代码: 复制内容到剪贴板
1. array(填充字段,填充内容,填充条件,附加规则)
填充字段就是需要进行处理的表单字段,这个字段不一定是数据库字段,也可以是表单的一些辅助字段,例如确认密码和验证码等等。
填充条件包括:
ADD 新增数据的时候处理(默认方式)
UPDATE 更新数据的时候处理
ALL 所有情况下都进行处理
附加规则包括:
function 使用函数
callback 回调方法
field 用其它字段填充
string 字符串(默认方式)
示例:
代码: 复制内容到剪贴板
1. var $_auto = array (
2. array('status','1','ADD'), // 默认把status字段设置为1
3. array('password','md5','ADD','function') // 对password字段在新增的时候使用md5函数处理
4. array('name','getName','ADD','callback') // 对name字段在新增的时候回调getName方法
5. array('mTime','time','UPDATE',’function’), // 对mTime字段在编辑的时候写入当前时间戳
6. );
PS:该自动填充可能会覆盖表单提交项目。其目的是为了防止表单非法提交字段。
使用Model类的create方法创建数据对象的时候会自动进行表单数据处理
SEO工具、SEO教程、SEM教程、SEO培训、SEO优化、SEO服务、SEM服务等方面的资料,让大家掌握更多搜索引擎优化、网站优化等方面的知识。
关注者
博客归档
-
▼
2008
(128)
-
▼
十一月
(127)
- 导致网站进沙盒的真正原因
- 单向链接对SEO意义和价值
- 网页title长度解密
- 淘宝网robots.txt拒绝百度蜘蛛抓取,抵制百度
- 中搜对百度采取屏蔽措施
- JavaScript对SEO的影响和处理办法
- 百度召开紧急会议应对央视“曝光门”
- 百度受央视曝光影响周一股价大跌25%
- 关键字“小事”做到百度排名第一的
- SEO实际运用-网站编辑
- 黑帽SEO是什么?
- SEO探索-seo与网站结构的关系
- 从SEO原则看网站优化
- 不用 SEO取得成功的10个步骤
- 百度排名NO.1是怎样SEO成功的?
- 搜索引擎如何给你的网站内容打分
- 网站建设中标题和页面描述的撰写技巧
- 三年站长生涯收入80万的实战总结
- 长尾搜索可能比预料得还要长
- 网站关键字热门与时效性的测试
- 巧用seo获得上万流量的技巧
- 谈谈国外网站赚钱的要诀
- 百度图片SEO:让流量在翻番
- Site网址首页不在第一位的原因
- 有效增加反向链接的5个方法
- 告诉你24种提高网站关键字排名的SEO技巧
- 有利于网站排名的设计建议
- seoer你该怎么学习你的竞争对手?!
- 超强外链提高pr资源共享!
- 10种在SEO之外获得网站流量的方式(译)
- 最权威的Google排名算法解密
- 卖什么又省心又容易赚钱
- 网站赚钱就靠广告行不行?
- 网站美观重要还是实用重要?
- 中文网站设计通病
- SEO难学的那部分
- 从SEO角度看网站重新设计
- 复制内容网页是怎样形成的?
- 搜索引擎统一Robots文件标准
- 用户体验与SEO
- robots.txt详细介绍
- SEO作弊的含义与常见方式
- 强势推出“评测网站的十个指标”
- Google官方针对网站SEO的建议
- 搜索引擎中文分词技术
- 如何避免中小企业提升网络营销成功率五大误区
- 网络营销相对传统营销有哪些优势?
- 为什么要建立网站地图?
- 网站被百度K了怎么办?
- 搜索引擎排名算法中必不可少的要素
- 揭秘影响Google排名的主要因素
- 中国SEO的前景如何?
- 什么是反向链接?
- Google优化圣经
- 搜索引擎排名算法中必不可少的要素
- 怎样为有内容的网站创建良好的用户体验?
- SEO优化的主要环节和步骤包括哪些方面?
- 网站更换新域名,怎样才不会影响原有排名?
- 网站排名下降的主要原因
- 搜索引擎对网站重复内容的看法及建议
- 链接架构的重要性
- 常见的SEO术语
- 目前最完美解决QQ卸载彩虹的方法
- 服务器对网站排名的影响
- .NET语言的选择
- .Net的精髓-XML和SOAP
- ASP.Net的几大热点问题
- Windows.NET Server: 远程访问
- 技术分析:.NET的优势与劣势
- 微软下一代网络服务器IIS7前瞻
- 代码大战:哪种语言会赢得开发的霸权?
- 技术分析:.NET的优势与劣势
- 用不着妄自菲薄 对ASP和ASP程序员的一些话
- 从本质上看网页(asp,jsp)的编写
- 一个用ASP生成html的新方法
- 一个基于web的QQ程序 2(xml+asp)
- PHP5的 SPL
- 连续正整数 算法实现
- 深入学习memcached
- php在apache中安装模式的区别:fastcgi和mod_php
- PHP与WEB服务工作的三种方式
- 深入PHP编译缓存
- 编译PHP手册的新办法
- 用于解决PHP 命名空间分隔符输入问题的USB设备
- 再论代码之美——PHP实战
- php 时间差8小时解决
- 自动编码转换
- ThinkPHP安全体系-委托认证和决策访问和RBAC
- 从URL路由、空操作和空模块看ThinkPHP对SEO的支持
- 模型自动验证和处理
- 多数据库支持
- 值得关注的ThinkPHP特性2:分布式数据库支持
- 讲解一个经过高手优化的MySQL数据库实例
- ASP实现网站智能分词搜索
- 编写简单的中文分词程序
- 中文分词搜索,asp拆词搜索,asp智能分词搜索
- 用存储过程实现删除数据表的部分记录
- MySQL存储过程SAVEPOINT ROLLBACK to
- 用一个存储过程实现分步删除数据表记录
- DB2数据库创建存储过程时遇到的错误现象
-
▼
十一月
(127)
没有评论:
发表评论