- 夜话之10:表单自动验证
- 推荐指数:4
- 难度系数:2
- 实用指数:5
一直以来,表单操作是
应用开发中的最频繁的操作,而如何简化表单的操作是提高开发效率的有效途径。
ThinkPHP把表单操作纳入核心支持,简化了应用开发对于表单的操作。后面的几篇话题都和表单会有一定的关系,ThinkPHP的表单操作涉及了表单数据的自动创建、自动验证、自动填充等。今天讲述的主要是表单的自动验证。
虽然Struts提供了一个很好的表单验证机制,但是具体操作起来却是一个比较麻烦的事情,ThinkPHP简化了表单验证的操作(这里指的是后端验证,前端验证ThinkPHP也提供了专门的JS类库来进行处理),依然提供了强大的验证功能。
只要在Vo里面
定义了自动验证因子,就可以完成对表单的自动验证过程,该验证过程调用了
系统的验证类库。例如:
- var $_validate = array(
- array(
'name','require','名称必须!'),- array(
'age','number','年龄必须是数字'),- array(
'email','email','邮箱不符合!'),- array(
'sex','require','性别必须!',MUST_TO_VALIDATE),- array(
'password','/^[a-z]w{6,30}$/i','密码必须以字母开头6位以上'),- );
_validate 属性是一个二维数组,每个元素表示一个验证因子,依次表示的参数是验证属性名称、验证规则、错误提示信息、是否必须验证。需要对最后一个参数作出说明,因为系统的自动验证默认是会验证表单中存在的属性,如果需要对表单中没有定义,但是数据定义里面是存在的属性进行验证,就必须使用MUST_TO_VALIDATE,这样的做法是为了防止远程表单提交。其中验证规则可以采用正则表达式或者验证类内置的验证规则名称。
定义好验证因子后,系统会在创建表单数据的时候自动进行验证。
要获取验证的结果,可以采用下面的代码:
- $dao = D("Blog");$vo = $dao->createVo();
- if(
false === $vo) {-
$this->error($dao->error);- }