一直以来,表单操作是
应用开发中的最频繁的操作,而如何简化表单的操作是提高开发效率的有效途径。
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);
}