请选择 进入手机版 | 继续访问电脑版

SpeedPHP框架

 找回密码
 注册成为新用户

QQ登录

只需一步,快速开始

查看: 4518|回复: 0

[数据操作] 动态增加数据验证规则

[复制链接]
发表于 2012-8-4 16:50:46 | 显示全部楼层 |阅读模式

在数据验证的时候,我们有时会遇到动态增加验证规则的情况,实现起来也是非常的简单。

模型类中的成员变量$verifier,其实和普通的数组是一样的。所以动态增加验证规则,我们可以直接通过对$verifier赋值来实现。

如在上例中的lib_user的$verifier是这样的。

  1. <?php
  2. class lib_user extends spModel
  3. {
  4.         var $pk = "uid";
  5.         var $table = "user"; // 数据表的名称
  6.         var $verifier = array( // 验证登录信息
  7.                 "rules" => array( // 规则
  8.                         'uname' => array(  // 这里是对uname的验证规则
  9.                                 'notnull' => TRUE, // uname不能为空
  10.                                 'minlength' => 3,  // uname长度不能小于3
  11.                                 'maxlength' => 12  // uname长度不能大于12
  12.                         ),
  13.                 ),
  14.                 "messages" => array( // 提示信息
  15.                         'uname' => array(
  16.                                 'notnull' => "用户名不能为空",
  17.                                 'minlength' => "用户名不能少于3个字符",
  18.                                 'maxlength' => "用户名不能大于20个字符"
  19.                         ),
  20.                 )
  21.         );
复制代码
在使用的时候,我们希望能加入一个“对邮箱地址”的验证,那么在控制器中,我们就可以对$verifier进行赋值。
  1. $userObj = spClass("lib_user"); // 实例化lib_user类

  2. $userObj->verifier['rules']['email'] = array( // 增加email的验证规则
  3.         'notnull' => TRUE,
  4.         'email' => TRUE,   
  5.         'minlength' => 8,  
  6.         'maxlength' => 20,
  7. );
  8. $userObj->verifier['messages']['email'] = array( // 增加email的验证提示
  9.         'notnull' => 'email不能为空',
  10.         'email' => '必须要是电子邮件格式',  
  11.         'minlength' => 'email长度不能小于8',
  12.         'maxlength' => 'email长度不能大于20',
  13. );
  14. $results = $userObj->spVerifier($this->spArgs());
复制代码
通过对$verifier数组的改变,就可以动态增加验证规则了。

当然,这是临时加入的验证规则,如果不是临时的,那么就可以直接写到$verifier上面。
$verifier的修改可以变更spVerifier的验证,同理,$linker的修改也可以变更spLinker的关联。


您需要登录后才可以回帖 登录 | 注册成为新用户

本版积分规则

手机浏览|简版|中文PHP框架|开源协议|SpeedPHP.com ( 粤ICP备08008671号

GMT+8, 2020-4-4 09:43

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表